原创:字符串和语句逆转的几种方式,可以任意组合,java实现
2012-02-29 20:25
597 查看
原创:字符串和语句逆转的几种方式,可以任意组合。
作者:Jeremy-Zhang
时间:2012/2/29
地点:网安实验室
//第一种采取中间变量的逆转字符串
public class StringReverse{
public static void main(String[] args) {
char[] a = {'a','b','c','d','e'};
for(int i=0;i<a.length/2;i++){
char temp ;
temp = a[i];
a[i] = a[a.length-i-1];
a[a.length-i-1] = temp;
}
System.out.println(a.length);
System.out.println(a);
}
}
//第二种采取中间变量的逆转字符串
public class StringReverse2 {
public static void main(String[] args){
char[] a = {'a','b','c','d'};
Reverse(a, 0, a.length-1);
}
public static void Reverse(char[] array,int begin,int end){
while(end > begin){
char temp;
temp = array[begin];
array[begin] = array[end];
array[end] = temp;
begin++;
end--;
}
System.out.println(array);
}
}
//第三种不采取中间变量的字符串逆转,采取异或操作
public class StringReverse1 {
public static void main(String[] args) {
char[] a = {'a','b','c','d','e'};
for(int i=0;i<a.length/2;i++){
a[i] = (char) (a[i] + a[a.length-i-1]);
a[a.length-i-1] = (char) (a[i] - a[a.length-i-1]);
a[i] = (char) (a[i] - a[a.length-i-1]);
}
System.out.println(a.length);
System.out.println(a);
}
}
//要求把This is a man boy 逆序为boy man a is This
//第一步把每个单词逆转,第二步把整个数组逆转。
public class StringReverse3 {
public static void main(String[] args){
char[] a = {'T','h','i','s',' ','i','s',' ','a',' ','m','a','n',' ','b','o','y','\0'};
int begin = 0;
int end = 0;
while(a[end] != '\0'){ //遍历数组
if(a[end] == ' ' ){
Reverse(a, begin, end-1);//翻转每个单词
begin = end + 1; //重新设置起点的位置
}
end++;
}
Reverse(a, begin, end-1);//逆转最后一个单词
Reverse(a, 0, a.length-1);//整个数组逆转,即可得到结果
System.out.println(a);
}
public static void Reverse(char[] array,int begin,int end){
while(end > begin){
char temp;
temp = array[begin];
array[begin] = array[end];
array[end] = temp;
begin++;
end--;
}
//System.out.println(array);
}
}
作者:Jeremy-Zhang
时间:2012/2/29
地点:网安实验室
//第一种采取中间变量的逆转字符串
public class StringReverse{
public static void main(String[] args) {
char[] a = {'a','b','c','d','e'};
for(int i=0;i<a.length/2;i++){
char temp ;
temp = a[i];
a[i] = a[a.length-i-1];
a[a.length-i-1] = temp;
}
System.out.println(a.length);
System.out.println(a);
}
}
//第二种采取中间变量的逆转字符串
public class StringReverse2 {
public static void main(String[] args){
char[] a = {'a','b','c','d'};
Reverse(a, 0, a.length-1);
}
public static void Reverse(char[] array,int begin,int end){
while(end > begin){
char temp;
temp = array[begin];
array[begin] = array[end];
array[end] = temp;
begin++;
end--;
}
System.out.println(array);
}
}
//第三种不采取中间变量的字符串逆转,采取异或操作
public class StringReverse1 {
public static void main(String[] args) {
char[] a = {'a','b','c','d','e'};
for(int i=0;i<a.length/2;i++){
a[i] = (char) (a[i] + a[a.length-i-1]);
a[a.length-i-1] = (char) (a[i] - a[a.length-i-1]);
a[i] = (char) (a[i] - a[a.length-i-1]);
}
System.out.println(a.length);
System.out.println(a);
}
}
//要求把This is a man boy 逆序为boy man a is This
//第一步把每个单词逆转,第二步把整个数组逆转。
public class StringReverse3 {
public static void main(String[] args){
char[] a = {'T','h','i','s',' ','i','s',' ','a',' ','m','a','n',' ','b','o','y','\0'};
int begin = 0;
int end = 0;
while(a[end] != '\0'){ //遍历数组
if(a[end] == ' ' ){
Reverse(a, begin, end-1);//翻转每个单词
begin = end + 1; //重新设置起点的位置
}
end++;
}
Reverse(a, begin, end-1);//逆转最后一个单词
Reverse(a, 0, a.length-1);//整个数组逆转,即可得到结果
System.out.println(a);
}
public static void Reverse(char[] array,int begin,int end){
while(end > begin){
char temp;
temp = array[begin];
array[begin] = array[end];
array[end] = temp;
begin++;
end--;
}
//System.out.println(array);
}
}
相关文章推荐
- 几种读取属性文件的JAVA实现方式
- Java基础——从键盘(控制台)输入字符串(数据)的几种方式详解
- java 字符串截取的几种方式 (转自网络)
- 【Java面试题】23 java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
- java 定时器的几种实现方式以及 配置参数的说明
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- 今天无意中发现JavaBean类基本都要求实现了Serializable接口,以前只是知道序列化以后,可以通过io流的方式将对象序列化和反序列化,进行存取,但不知道为什么需要序列化,今天总结一下
- (十六)java并发编程--线程的死锁解决方案(生产者和消费者几种实现方式)
- java servlet 几种页面跳转的方法,需要的朋友可以参考一下 在访问网页的过程中,页面自动刷新、跳转和重定向是经常用到的,这里就说说在Java中是如何实现这些功能的! 一、页面自动刷新
- java开发线程篇1:java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
- java实现同步的几种方式
- java几种方式实现斐波那契数列
- Java实现网页截屏功能(图片下载功能)的几种方式(整理)
- JAVA细粒度锁实现的几种方式
- java 字符串截取的几种方式
- java 字符串截取的几种方式
- 定义一个函数,在该函数中可以实现任意两个整数的加法。java实现
- java中Singleton的几种实现方式
- Java实现字符串倒序输出的几种方法
- java代码--请设计一个方法,可以实现任意范围内的随机数