如何计算单词之间有空格的字符串中的确切单词数?

2022-09-05 00:07:10

编写一个名为 wordCount 的方法,该方法接受 String 作为其参数并返回 String 中的字数。单词是一个或多个非空格字符(除 ' '以外的任何字符)的序列。例如,调用 wordCount(“hello”) 应返回 1,调用 wordCount(“你好吗?”)应返回 3,调用 wordCount(“此字符串具有宽空格”)应返回 5,调用 wordCount(“ ”) 应返回 0。

我做了一个函数:

public static int wordCount(String s){

  int counter = 0;

  for(int i=0; i<=s.length()-1; i++) {

    if(Character.isLetter(s.charAt(i))){

      counter++;

      for(i<=s.length()-1; i++){

        if(s.charAt(i)==' '){

          counter++;
        }
      }                
    }
  }

  return counter;
}

但我知道这有1个限制,它也将在字符串中的所有单词完成后计算空格数,它还将计算2个空格,因为可能是2个单词:(是否有预定义的字数统计功能?或者可以更正此代码吗?


答案 1

如果要忽略前导、尾随和重复空格,可以使用

String trimmed = text.trim();
int words = trimmed.isEmpty() ? 0 : trimmed.split("\\s+").length;

答案 2
public static int wordCount(String s){
    if (s == null)
       return 0;
    return s.trim().split("\\s+").length;
}

玩得开心该功能。


推荐