1.常见面试题
将字符串"I am a student." 翻转为"student. a am I"
此题看着简单,但是很有可能会出现如下错误:
public class ReverseTest {
public static void main(String[] args) {
String s ="I am a student.";// 输出 student. a am I"
// 错误的做法,如下:
StringBuffer stringBuffer=new StringBuffer(s);
String string = stringBuffer.reverse().toString();
System.out.println(string );// **** .tneduts a ma I
}
}
这样用StringBuffer或者StringBuilder的reverse()方法会让每个单词的字母顺序都改变了,以至于都不是原来的单词,这个结果肯定不是我们要的
那么正确的解决方式就是将字符串用“ ” 切割,然后倒序拼接
public class ReverseTest {
public static void main(String[] args) {
String s ="I am a student.";// 输出 student. a am I"
String[] split = s.split(" ");
StringBuilder stringBuilder=new StringBuilder();
for (int i=split.length-1; i>=0;i--){
stringBuilder.append(split[i]).append(' ');
}
String result = stringBuilder.toString();
System.out.println(result);
}
}