好的,现在我知道这个问题已被多次询问并得到了回答,但我刚刚遇到这个问题并编写了这个(可怜的部分)代码而没有从前面的回答中得到任何线索,尽管它是给我正确的输出,我无法判断它是否正确。
public class WordCount
{
public static void main(String[] args) throws IOException
{
System.out.println("Enter a String");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s1= br.readLine();
s1 = s1+" ";
String ns = "";
int count = 0;
for(int i = 0; i < s1.length(); i++)
{
char ch = s1.charAt(i);
if(ch == ' ')
{
//ns = ns+ch;
count++;
}
/*else
{
ns = ns+ch;
}*/
}
System.out.println("There are "+count+" words in the string");
}
}
答案 0 :(得分:1)
int lineCount = yourString.trim().split("\\s+").length;
split()
函数返回一个数组,其中包含通过以指定方式拆分字符串而生成的标记。你拿你的字符串,用空格分割,因为它是一个数组 - 你需要它的长度。这就是计算单词所需的全部内容。 (regex
\\s+
使函数在每个空格处拆分字符串,即返回包含所有单词的数组。)
编辑:好点托马斯
答案 1 :(得分:-1)
如果你想在没有空格的情况下计算任何字符串的单词。这很容易你的代码有点正确但是我纠正了一些错误..试试这个 显示以下示例。
//correct the code in loop.
// s1 is your string.
for(int i = 0; i < s1.length(); i++)
{
char ch = s1.charAt(i);
if(ch != ' ')
{
count++;
}
}
System.out.println(count);