如何查找字符串中的单词数--JAVA

时间:2012-11-09 18:24:40

标签: java string loops

如何在不使用Java循环的情况下查找字符串中的单词数?

5 个答案:

答案 0 :(得分:3)

如果你想避免循环,你将不得不使用递归。

答案 1 :(得分:2)

尝试这样的事情:

int words = new java.util.StringTokenizer(myString," ").countTokens();

如果有效,请不要尝试,但应该。

答案 2 :(得分:1)

试试这个。这里肯定没有循环(假设String.length没有迭代而String.substring没有复制),甚至在幕后也没有,当然除了打印之外。

  static int nSpaces ( String s ) {
    int n = 0;
    if ( s.length() > 0 ) {
      if ( s.length() > 1 ) {
        // Split it in half.
        int center = s.length() / 2;
        // Count each half.
        n += nSpaces(s.substring(0, center))
           + nSpaces(s.substring(center));
      } else {
        // Just 1 character.
        if ( s.charAt(0) == ' ' ) {
          // It's a space.
          n += 1;
        }
      }
    }
    //System.out.println(n+" spaces in '"+s+"'");
    return n;
  }

  static int nWords ( String s ) {
    return nSpaces (s) + 1;
  }

  public static void main(String args[]) {
    String test = "Now is the time for all good men to come to the aid of the party.";
    System.out.println("nWords(\""+test+"\") = "+nWords(test));
  }

答案 3 :(得分:0)

1)您可以使用split,然后获取结果数组的长度,但这将计算任何非空格(例如数字)作为单词的内容
2)Use a regex to match anything(你可以调整任何东西)在空格之间。

答案 4 :(得分:0)

  1. 您可以拆分字符串以获取所有单词。
  2. 应用过滤器/正则表达式以删除不必要的标点符号,字符等。
  3. 然后将完整的数组放入一组以获得唯一的单词。
  4. 在上面的每一步中,您都可以得到您正在寻找的答案,以解决您的要求如何需要(独特或重复)