题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
分析
可分两步:
1、用spilt将输入字符串的子字符串组成一个数组,然后再首位调换顺序
2、将调换顺序的数组中字符串重新连接起来
代码如下:
public class Solution {
public String ReverseSentence(String str) {
//第一步:将字符串按照空格分隔出字符串数组,并交换顺序
String[] childStr = str.split(" ");
//排除str为" "(含多个空格字符串情况)
if(childStr.length == 0){
return str;
}
for(int i = 0,j = childStr.length - 1 ; i < childStr.length/2 ; i++,j--){
String temp = childStr[i];
childStr[i] = childStr[j];
childStr[j] = temp;
}
//第二步:将数组中字符串组合
String res = "";
for(int k = 0 ; k < childStr.length ; k++){
if(k != childStr.length - 1){
String temp1 = childStr[k] + " ";
res += temp1;
}else{
res += childStr[k];
}
}
return res;
}
}