思路
- 由“student a am I”翻转为"I am a student",能发现是对字符串按空格进行分割,然后把分割后的元素翻转一下
- 通过split()分割后会得到字符串数组,数组中的每个元素就是一个单词
- 然后可以通过逆序遍历这个数组,将元素添加到stringbuffer中
- 然后需要注意字符串两端的空格需要去除掉,会用到trim()这个函数
代码
import java.util.Stack;
public class Solution {
public String ReverseSentence(String str) {
if(str.trim().equals("")){
return str;
}
StringBuffer sb = new StringBuffer();
String[] array_str = str.split(" ");
for(int i=array_str.length-1;i>=0;i--){
sb.append(array_str[i]);
if(i>0){
sb.append(" ");
}
}
return sb.toString().trim();
}
}
也可以借助栈来进行翻转
import java.util.Stack;
public class Solution {
public String ReverseSentence(String str) {
if(str.trim().equals("")){
return str;
}
StringBuffer sb = new StringBuffer();
String[] array_str = str.split(" ");
Stack stack = new Stack();
for(int i=0;i<array_str.length;i++){
stack.push(array_str[i]);
}
while(!stack.isEmpty()){
sb.append(stack.pop()+" ");
}
/*for(int i=array_str.length-1;i>=0;i--){
sb.append(array_str[i]);
if(i>0){
sb.append(" ");
}
}*/
return sb.toString().trim();
}
}