原串反转
我的解法
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[]);