不多说,先看代码,主要是reverse方法中关于end=y-1的取值有点疑问,我验证过了,end=y-1是正确的取法,但我就是理解不了,按道理来说reversr(s,x,y)是将角标为x和角标为y的字符交换位置,如果y-1的话岂不是角标为x和角标为y-1的字符交换位置了么?
//练习二:将字符串进行翻转
public static String reverseString(String str,int x,int y)
{
char[] chr=str.toCharArray();
reverse(chr,x,y);
return new String(chr);
}
public static void reverse(char s[],int x,int y)
{
for (int start=x,end=y-1; start<end;start++,end-- )
{char temp=s[x];
s[x]=s[y];
s[y]=temp;
}
}
public static void main (String[] args)
{
String s="abcdetyaet";
String s1=reverseString(s,2,9);
System.out.println(s1);
}
}
|