class test2
{
//定义某个字符串的打印方法。
public static void sop(String str)
{
System.out.println(str);
}
public static void main(String[] args)
{
String s=" ab cd ";
sop("("+s+")"); //打印没有去掉空格的字符串
sop("("+fanzhuan(s,6,7)+")");
}
public static String fanzhuan(String st,int start,int end)
{
//字符串变数组
char[] chs=st.toCharArray();
//反转数组
reverse(chs,start,end); //调用反转方法。 start 调转字符的开始下标,end是结束下标
return new String(chs);//将数组变成字符串。
}
public static String fanzhuan(String s)
{
return "";
}
//定义反转方法
private static void reverse(char[] arr,int x,int y)
{
for (int start=x,end=y-1;start<end;start++,end--) //注意包含头,不包含尾。因为长度-1,就是最后一个下标。所以,end=y-1;
{
swap(arr,start,end); //arr是传入的字符串转换成的数组,
//start是字符串从开始位置除空格后的下标,end是字符串从末位置除空格后的下标
}
}
//换位方法,注意用第三方变量。
private static void swap(char[] arr,int x,int y)
{
char temp=arr[x]; //把传入的数组的下标值,赋给第三方变量
arr[x]=arr[y];
arr[y]=temp;
}
}
问:这段代码是为了让字符串改变位置,如:sop("("+fanzhuan(s,6,7)+")");就是改变s这个字符串,从下标为6到7的字符转换一下位置?
怎么转换不了呢?求解啊?如果我想让字符串s里的a和b反转,怎么做?
|