黑马程序员技术交流社区
标题:
反转字符串的一个问题
[打印本页]
作者:
马州州
时间:
2012-8-3 11:37
标题:
反转字符串的一个问题
将字符串反转。
class Test
{
public static void main(String[] args)
{
String s= "asdwadf";
System.out.println(s);
System.out.println(reverseString(s));
}
public static String reverseString(String s)
{
char[] chs=s.toCharArray();
reverse(chs);
return new String(chs);
}
public static void reverse(char[]
arr
)
这里为什么重新创建一个数组呢?跟用chs有什么区别?我还用chs依然可以得到结果
而且这里新建一个数组,怎么跟上面的数组联系起来呢?
{
for (int start=0,end=arr.length-1 ;start<end;start++,end--)
{
swap(arr,start,end);
}
}
public static void swap(char[] arr,int x,int y)
{
char temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
public static void reverse(char[]
arr
)就是再定义这个方法的时候,
为什么重新创建一个数组呢?跟用chs有什么区别?我还用chs依然可以得到结果
而且这里新建一个数组,怎么跟上面的数组联系起来呢?
作者:
郑正华
时间:
2012-8-3 11:53
本帖最后由 郑正华 于 2012-8-3 11:58 编辑
楼主你理解错了吧。public static void reverse(char[] arr) 这里括号里的内容意思是这个方法接收的是一个char类型的数组,arr是一个随便定义的变量名,不是你说的重新创建一个数组,没有创建..........
调用reverse方法时,肯定要往这个方法里传递一个char类型数组,你都写了reverse(chs);而且程序没报错,说明你的chs符合reverse方法的参数接收要求。
只要你传递进来的参数符合括号里的规定就OK!
作者:
pphdsny3
时间:
2012-8-3 13:01
实现反转字符串没必要那么麻烦,看下我下面的代码你就明白了:
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "qweasd";
String str2 = new StringBuilder(str).reverse().toString();
System.out.println(str2);
}
}
复制代码
作者:
马州州
时间:
2012-8-3 13:07
我自己想明白啦,问题已解决
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2