目标
编写代码,实现将一个字符串中字符的排列顺序进行反转,头尾调换。
思路
- 将字符串变成你字符数组。
- 对字符数组反转。
- 将字符数组变成字符串。
编码
public static void main(String[] args){
String str="abcdefg";
sp("原字符串:"+str);
String str1=reverseString(str); // 将字符串全部反转
sp("全部反转后字符串:"+str1);
String str2=reverseString(str,2,5); // 将字符串指定部分进行反转
sp("反转后字符串:"+str2);
}
// 将字符串整体进行反转
public static String reverseString(String str){
return reverseString(str,1,str.length());
}
// 重载,将部分字符串反转
public static String reverseString(String str,int start,int end){
// 将字符串转换为字符数组
char[] chs=str.toCharArray();
// 反转字符数组
reverse(chs,start,end);
// 将字符数组转换为字符串
return new String(chs);
}
// 反转字符数组
public static void reverse(char[] chs,int x,int y){
for(int start=x-1,end=y-1;start<end;start++,end--){ // 定义指定字符在字符串中实际角标
swap(chs,start,end);
}
}
// 位置替换
public static void swap(char[] chs,int x,int y){
char temp=chs[x];
chs[x]=chs[y];
chs[y]=temp;
}
public static void sp(Object obj){
System.out.println(obj);
}