黑马程序员技术交流社区

标题: 没基础学员----字符串反转问题求指教 [打印本页]

作者: 張帅    时间: 2013-9-6 08:30
标题: 没基础学员----字符串反转问题求指教
本帖最后由 張帅 于 2013-9-10 17:39 编辑

class StringTest
{
           public static void sop(String str)
        {
                System.out.println(str);
        }

public static String reverseString(String s)
{
      char[] chs = s.to charArray();//将字符串变成数组.......我想问的是 为什么转换字符串要先将字符串转换成数组,能不能不换成数组直接转换位置吗?,新人无基础学员,学到此处产生问题。。
      reverse(chs);\\将字符串反转为数组chs
      return new String(chs);
}
private static void reverse(char[] arr)
{
      for(int start=0,end=arr.length-1;start<end;start++,end--)//转换的起始位置、条件设置
      {
            swap(arr,start,end);
      }
private static void swap(char[] arr,intx,inty)//利用第三方变量操作转换
{
   char temp = arr[x];
          arr[x] = arr[y];
          arr[y] = temp;
}
public static void main(String args[])
{
   String s = “hellochina";
   sop("("+s+")");//打印转换前的字符串
   sop("("+reverseString(s)+")") ;
}}



作者: yangjie    时间: 2013-9-6 08:52
String类对象建立之后是不可变的常量,改动它会直接生成新的对象。而且它只提供了查找判断和简单的替换方法,转成数组之后就可以用数组的思想和方法来修改了。

如果不用数组还可以用StringBuffer或者StringBuilder类,这两个类支持可变的字符串,提供一些更灵活的操作方法,比如reverse方法就可以用来反转字串。

作者: 杨栋    时间: 2013-9-6 11:01
因为转换成 字符数组 你就可以对 字符数组 进行 排序,反转等操作,然后 再 把 排序/反转后的 字符数组 转换成字符串,那么 这个新的 字符串 就是反转过的。


作者: 胡志翔    时间: 2013-9-6 11:52
可以用 new StringBuilder(String s).reverse() 语句来实现字符串的反转
作者: 辛春鹏    时间: 2013-9-6 17:40
想要把字符串反转,之所以想到用数组是因为数组中带有角标啊,可可确定哪一个是第几个位置。可以把每一个字符取出来,从新排放。但是,字符串本身可没有这个功能啊。
作者: 杨增坤    时间: 2013-9-6 18:06
楼主你好!如果您的问题已经解决了,

请您把问题的未解决更改为已解决

谢谢合作!



作者: 花生壳    时间: 2013-9-6 18:59
还可以,拉下来跑了一下,代码本事有点小问题。不过这个应该不难理解。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2