Count the number of segments in a string,where a segment is defined to be a contiguous sequence of non-space characters.
Please note that the string does notcontain any non-printable characters.
Example:
Input: "Hello, my name is John"
Output: 5
翻译:计算字符串中段的数量,其中段被定义为非空格字符的连续序列。请注意,字符串不包含任何不可打印的字符。
分析:看到题目的第一眼就是想到String的split方法,根据匹配给定的正则表达式来拆分此字符串。trim()返回字符串的副本,忽略前导空白和尾部空白。但是一直没写对,看了一下别人的正则表达式。第二种方法比较常规化,但是有一个判断条件就是i==0,这个需要注意,防止数组下标越界。具体代码如下:
public class Solution {
public int countSegments(String s) {
/*String trimmed = s.trim();
if(trimmed.length()==0)
return 0;
else
return trimmed.split("\\s+").length;*/
int res=0;
for(int i=0; i<s.length(); i++)
if(s.charAt(i)!=' ' && (i==0 || s.charAt(i-1)==' '))
res++;
return res;
}
}