主要的问题是split方法
一、待分割字符串 待分割字符串为如下:
String str = "a b c d e f g"
其中,字符串中的的空白分别为:单个空格,多个空格,tab制表符。
二、使用一个或多个空格分割字符串 正确代码如下:
String [] arr = str.split("\\s+");
for(String ss : arr){
System.out.println(ss);
}
作为对比,错误代码如下:
String [] arr2 = str.split(" ");
for(String ss : arr2){
System.out.println(ss);
}
因此有两种写法,一种是用正则,一种是人为判断空格。
class Solution {
public String reverseWords(String s) {
String[] strs = s.trim().split("\\s+");
StringBuilder res = new StringBuilder();
for(int i = strs.length - 1; i >= 0; i--) {
res.append(strs[i] + " ");
}
return res.toString().trim();
}
}
|