黑马程序员技术交流社区
标题:
自定义反转,疑惑。。
[打印本页]
作者:
皮卫凯
时间:
2012-9-18 22:27
标题:
自定义反转,疑惑。。
本帖最后由 皮卫凯 于 2012-9-19 08:53 编辑
将字符串反转。
/*
思路:
1,将字符串变成数组。
2,对数组反转。
3,将数组变成字符串。
*/
public static String reverseString(String s,int start,int end)
{
//字符串变数组。
char[] chs = s.toCharArray();
//为什么要把字符串变成数组,然后再把数组变成字符串,不可以直接用字符串操作么
//反转数组。
reverse(chs,start,end);
//将数组变成字符串。
return new String(chs);
}
public static String reverseString(String s) //这段代码是什么作用,我觉得可以删去不要。
{
return reverseString(s,0,s.length());
}
private static void reverse(char[] arr,int x,int y)
{
for(int start=x,end=y-1; start<end ; start++,end--)
//我觉得可以用charAt() 把字符串的位置获取,然后再交换,组成新的字符串。
{
//charAt(0) 和 charAt(str.length-1) 直接交换
swap(arr,start,end);
//charAt(x) charAt(y)
}
// x++ y--
}
private static void swap(char[] arr,int x,int y)
{
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
作者:
尤圣回
时间:
2012-9-18 22:40
将字符串反转。
/*
思路:
1,将字符串变成数组。
2,对数组反转。
3,将数组变成字符串。
*/
public static String reverseString(String s,int start,int end)
{
//字符串变数组。
char[] chs = s.toCharArray(); //因为变成数组可以调用指针 你反转就是控制指针的位置 因为你最后输出的是字符串 所以要把数组编程字符串
//反转数组。
reverse(chs,start,end);
//将数组变成字符串。
return new String(chs); //你这里创建了两个字符串对象 类似new String("swz") 没必要这样最 直接 new String(s,0,s.length()); 这样下面那句就可以去掉了
}
public static String reverseString(String s) //这就就是把数组变成字符串 {
return reverseString(s,0,s.length());
}
private static void reverse(char[] arr,int x,int y)
{
for(int start=x,end=y-1; start<end ; start++,end--) //我觉得可以用charAt() 把字符串的位置获取,然后再交换,组成新的字符串。 我个人觉得只要实现方法什么样子都可以
{ //charAt(0) 和 charAt(str.length-1) 直接交换
swap(arr,start,end); //charAt(x) charAt(y)
} // x++ y--
}
private static void swap(char[] arr,int x,int y)
{
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2