A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 張帅 中级黑马   /  2013-9-6 08:30  /  2147 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 張帅 于 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)+")") ;
}}


评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

6 个回复

倒序浏览
String类对象建立之后是不可变的常量,改动它会直接生成新的对象。而且它只提供了查找判断和简单的替换方法,转成数组之后就可以用数组的思想和方法来修改了。

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

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
因为转换成 字符数组 你就可以对 字符数组 进行 排序,反转等操作,然后 再 把 排序/反转后的 字符数组 转换成字符串,那么 这个新的 字符串 就是反转过的。

评分

参与人数 1技术分 +1 收起 理由
以防万一 + 1 赞一个!

查看全部评分

回复 使用道具 举报
可以用 new StringBuilder(String s).reverse() 语句来实现字符串的反转
回复 使用道具 举报
想要把字符串反转,之所以想到用数组是因为数组中带有角标啊,可可确定哪一个是第几个位置。可以把每一个字符取出来,从新排放。但是,字符串本身可没有这个功能啊。
回复 使用道具 举报
楼主你好!如果您的问题已经解决了,

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

谢谢合作!


回复 使用道具 举报
还可以,拉下来跑了一下,代码本事有点小问题。不过这个应该不难理解。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马