您的位置:首页 > 编程语言 > Java开发

原创:字符串和语句逆转的几种方式,可以任意组合,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);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java string class c
相关文章推荐