题目:
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
知识点:
字符串分割:String[] str.split(" ");
StringBuffer类:可对字符串进行追加、插入、删除等操作。
StringBuffer中追加操作:StringBuffer sb.append(str1);
StringBuffer变为String:String sb.toString();
思路:
1、将字符串以空格分割,变为String[];
2、遍历String[],反转+空格,添加到StringBuffer中,最后一位单独添加(不加空格);
3、将StringBuffer转为String返回。
答案:
public class Solution {
public String ReverseSentence(String str) {
if(str.length()==0){return str;}
String[] s = str.split(" ");//分割
int len = s.length;
if(len==0){return str;}//str为空格的特殊情况
StringBuffer sb = new StringBuffer();
for(int i=len-1;i>0;i--){//反转添加,并加空格
sb.append(s[i]+" ");
}
sb.append(s[0]);//添加最后一位,不加空格
return sb.toString();//转为String类型,返回
}
}