我发现现在笔试题经常出现字符串反转,下面记录一下常用的几种方案
1、使用String.cahrAt(i)
public static void main(String[] args) {
reverse("ABCDEFG");
}
public static void reverse(String input){
System.out.println(input);
String out="";
for( int x= input.length();x > 0;x--){
out += input.charAt(x-1);
}
System.out.println(out);
}
2、使用StringBuffer或者StringBuilder的reverse()方法
public static void main(String[] args) {
reverse1("ABCDEFG");
}
public static void reverse1(String input){
System.out.println(input);
StringBuilder sb=new StringBuilder(input);
String out=sb.reverse().toString();
System.out.println(out);
}
3、使用反转数组
public static void main(String[] args) {
reverse2("ABCDEFGH");
}
/**
* 反转数组
*/
public static void reverse2(String input) {
System.out.println(input);
// String[] array = input.split("");
// char[] array = input.toCharArray();
byte[] array = input.getBytes();
for (int i = 0, x = array.length; i < x; i++, x--) {
byte temp = array[x - 1];
array[x - 1] = array[i];
array[i] = temp;
}
//拼接数组的方法可以自己写
System.out.println(new String(array));
}