输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。
这道题难度不高,但就是中间到处有空格,很容易就踩坑,然后就报错了。例如输入"I am a student. ",这个只有后面有空格,直接trim函数即可;如果输入"a good example",两个字符之间有空格,这就需要遍历到对应单词的时候把空格去掉,因此需要将字符串转为数组,然后判断数组元素是否有空字符串情况的发生,需要再一次用到trim方法。
package leecodeOff;
/*
* 58.翻转单词顺序
*/
public class Demo58_1 {
public String reverseWords(String s) {
if(s.equals("")) {
return s;
}
else {
String[] strarray = s.trim().split(" ");
int length = strarray.length;
StringBuffer buff = new StringBuffer();
for(int i=length-1;i>=0;i--) {
String tempstr = strarray[i].trim();
if(!tempstr.equals("")) {
buff.append(strarray[i]).append(" ");
}
}
return buff.toString().trim();
}
}
public static void main(String args[]) {
Demo58_1 demo = new Demo58_1();
String s = "a good example";
String value = demo.reverseWords(s);
System.out.println(value);
}
}