1.题目

统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。

请注意,你可以假定字符串里不包括任何不可打印的字符。

示例:

  1. 输入: "Hello, my name is John"
  2. 输出: 5
  3. 解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。

2.思路

我们利用java中的split()方法,按照空格分割开,它的长度就是字符串中有的个数

\表示转义 \s+表示匹配任何空白字符

  1. public int countSegments(String s) {
  2. //先去掉首位空格
  3. s = s.trim();
  4. if(s==null||s.equals("")){
  5. return 0;
  6. }
  7. return s.split("\\s+").length;
  8. }

当然我们也可以遍历

  1. public int countSegments(String s) {
  2. s = s.trim();
  3. if(s==null||s.equals("")) return 0;
  4. int count = 0;
  5. char last = ' ';
  6. for(int i = 0; i < s.length(); i++){
  7. if(last==' ' && s.charAt(i)!=' ') count++;
  8. last = s.charAt(i);
  9. }
  10. return count;
  11. }