首页 > 解决方案 > 使用 indexOf 计算单词

问题描述

我不能使用数组,只能使用简单的 Java ( if, for, while, substring, length, indexOf)

public int howManyWords(String s){
        
    myString = "I have a dream";
    int count = 1;
    int length = 0;
    while(count>=0){
        
        count = myString.substring(String.valueOf(length),myString.indexOf(" "));
        count++;
        length = myString.indexOf(" ");
    
    }
    
     return count;
}

应该返回 4

标签: javacountindexof

解决方案


首先,你做了无限循环,因为countis 1,你只是增加它。

其次,您甚至没有尝试在某些 IDE 中编写此代码,因为它会引发语法错误,因为您正在分配string,int当您这样做时count = myString.substring()

因此,count您可以使用而不是在循环中使用myString.indexOf

如果您不在乎会发生什么,这样的事情可能会起作用myString

int count = 0;

while(myString.indexOf(" ") >= 0) {
  count++;
  myString = myString.substring(myString.indexOf(" ") + 1)
}

return count;

推荐阅读