/*
将一个字符串进行反转,将字符串中指定部分进行反转。
思路:
1、曾经想学习过的对数组的元素进行反转。
2、将字符串变成数组,对数组进行反转。
3、将反转后的字符数组变成字符串。
4、只要将反转的部分的开始和结束位置作为参数传递即可。
*/
public class Exercise1 {
public static void main(String[] args) {
String s="AAAAAhduykBBBBBB";
sop("原字符串为:"+s);
sop("反转后的字符串为:"+reverseString(s));
sop("规定反转位置后的字符串为:"+reverseString(s,5,8));
}
//规定需要反转的位置,方法重载
public static String reverseString(String s,int x,int y){
//字符串变数组
char[] s1=s.toCharArray();
//反转数组
reverse(s1,x,y);
//将数组变成字符串
return new String(s1);
}
public static void reverse(char[] s,int x,int y){
for(int start=x,end=y-1;start<end;start++,end--){
swap(s,start,end);
}
}
public static String reverseString(String s){
//字符串变数组
char[] s1=s.toCharArray();
//反转数组
reverse(s1);
//将数组变成字符串
return new String(s1);
}
public static void reverse(char[] s){
for(int start=0,end=s.length-1;start<end;start++,end--){
swap(s,start,end);
}
}
public static void sop(Object obj){
System.out.println(obj);
}
public static void swap(char[] s,int x,int y){
char temp=s[x];
s[x]=s[y];
s[y]=temp;
}
}
结果图: