题目很简单,就是想对于java字符串操作进行总结
解法一:
class Solution {
public String reverseWords(String s) {
//String转换为Char[]数组
char[] cs = s.toCharArray();
int lo = 0, hi = 0;
for(int i=0;i<cs.length;i++){
if(cs[i] == ' '){
reverseString(cs, lo, hi-1);
lo = i + 1;
hi = lo;
}
else{
hi++;
}
}
reverseString(cs, lo, cs.length-1);
return String.valueOf(cs);
}
//参数传递
private void reverseString(char[] s, int lo, int hi){
while(lo <= hi){
char temp = s[lo];
s[lo] = s[hi];
s[hi] = temp;
lo++;
hi--;
}
}
}
解法二:
class Solution {
public String reverseWords(String s) {
//将一个字符串分割为子字符串,然后将结果作为字符串数组返回
String[] strs = s.split(" ");
//当对字符串进行修改时,需要使用StringBuffer
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < strs.length; i++) {
buffer.append(new StringBuffer(strs[i]).reverse().toString());
buffer.append(" ");
}
//trim() 方法用于删除字符串的头尾空白符
return buffer.toString().trim();
}
}