日期:2014-05-20  浏览次数:20725 次

反转字符窜为什么无效?
public class C
{
public static void main(String[] args)
{
System.out.println(reverseString("Hello World!"));
}
public static String reverseString(String s)
{
char[] chs = s.toCharArray(); // 将字符串变成数组
reverse(chs); // 将数组反转
return new String(chs); // 将数组变成字符串
}
private static void reverse(char[] arr) // 实现reverse方法
{
for(int start=0,end=arr.length-1;start>end;start++,end--)
{
swap(arr,start,end);
}
}
private static void swap(char[] arr,int x ,int y) //实现swap方法
{
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}

------解决方案--------------------
for(int start=0,end=arr.length-1;start>end;start++,end--)
for循环的条件应该改为
for(int start=0,end=arr.length-1;start>end;start++,end--)

你的条件将一次都不会被满足。
------解决方案--------------------
你是想练习还是想要反转功能,StringBuilder里有现成的。。。
StringBuilder sb = new StringBuilder("Hello World!");
System.out.println(sb.reverse().toString());