原串反转q

本文探讨了如何在Java中反转字符串,比较了使用StringBuffer和直接操作字符数组的方法。详细介绍了String与StringBuffer之间的转换,并提供了代码示例。重点在于理解字符串的不可变性以及在性能敏感操作中选择合适的数据结构。
摘要由CSDN通过智能技术生成

原串反转
我的解法
String是不可变的,所以使用StringBuffer
不可以使用String[i]进行取值。

import java.util.*;

public class Reverse {
    public String reverseString(String iniString) {
        // write code here
         // write code here
        int len=iniString.length();
        StringBuffer str=new StringBuffer(iniString);
        str.reverse();
        String s=new String(str);
        //或者直接把上两句改成 return str.reverse().toString();
        return s;
    }
}

重点
String于StringBuffer的相互转换

/* String与StringBuffer之间的转换
 * String -> StringBuffer
 * 方式一:构造方法
 * 方式二:通过append方法
 * StringBuffer -> String
 * 方式一:通过构造方法
 * 方式二:通过toString方法
 * */
public class StringAndStringBufferSwitch {
    public static void main(String[] args) {
        //String -> StringBuffer
        //创建一个String对象
        String str = "Hi Java!";
        System.out.println(str);

        //方式一:构造方法
        StringBuffer buffer = new StringBuffer(str);
        System.out.println(buffer);

        //方式二:通过append方法
        StringBuffer buffer2 = new StringBuffer();
        buffer2.append(str);
        System.out.println(buffer2);

        //StringBuffer -> String
        //创建一个StringBuffer对象
        StringBuffer buffer3 = new StringBuffer();
        buffer3.append("Happy birthday Java!");
        System.out.println(buffer3);

        //方式一:通过构造方法
        String str2 = new String(buffer3);
        System.out.println(str2);

        //方式二:通过toString方法
        String str3 = buffer3.toString();
        System.out.println(str3);
    }
}

官方解法

import java.util.*;

public class Reverse {
   public  String reverseString(String iniString) {
        // write code here
        int len=iniString.length();
        char b[]=iniString.toCharArray();
       for(int i=0;i<len/2;i++)
       {
            char temp=b[i];
            b[i]=b[len-1-i];
            b[len-1-i]=temp;
       }

       return new String(b);
    }
}

重点
String->char
string.toCharArray()
char->String
new String(char[]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白鼠666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值