牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
public class stringReverse {
public String ReverseSentence(String str) {
//trim() ?
if("".equals(str.trim())) return str;
String[] word = str.split(" ");
StringBuffer sb = new StringBuffer();
for(int i=word.length-1;i>=0;i--){
sb.append(word[i]+" ");
}
return sb.toString().trim();
}
public String ReverseSentence3(String str) {
String res="",tmp="";
for(int i=0;i<str.length();i++){
char c=str.charAt(i);
if(c==' '){
res=" "+tmp+res;
tmp="";
}else{
tmp=tmp+String.valueOf(c);
}
}
if(tmp.length()==0)
return res;
return tmp+res;
//if(res.length()==0)return res;
// return tmp+res;
}
//
public String ReverseSentence4(String str) {
if(str == null){ return null;}
if(str.trim().equals("")){
return str;
}
String[] strings = str.split(" ");
StringBuilder sBuilder = new StringBuilder();
for(int i = strings.length-1;i>=0;i--){
if(i==0){
sBuilder.append(strings[i]);
}else{
sBuilder.append(strings[i]);
sBuilder.append(" ");
}
}
String string1 = sBuilder.toString();
return string1;
}
public static void main(String[] args) {
stringReverse st = new stringReverse();
String str="world. a Wonderful";
System.out.println(st.ReverseSentence1(str));
}
}
//https://www.nowcoder.com/profile/982154/codeBookDetail?submissionId=150148