Java字数

时间:2016-02-18 03:35:25

标签: java

我刚刚开始使用Java,所以感谢您的耐心等待。无论如何,我正在写一个单词计数程序,你可以通过标题告诉我,我被困在for循环下面的numWords函数,我不确定我应该把它等于什么。如果有人能让我朝着正确的方向前进,那将是非常棒的。谢谢。这是我到目前为止的所有代码,请告诉我,如果我对我的要求不够具体,这是我的第一篇文章。再次感谢。

import java.util.Scanner;
public class  WCount {

    public static void main (String[] args) {
        Scanner stdin = new Scanner(System.in);

        String [] wordArray = new String [10000];
        int [] wordCount = new int [10000];
        int numWords = 0;

        while(stdin.hasNextLine()){
            String s = stdin.nextLine();
            String [] words = s.replaceAll("[^a-zA-Z ]", "").toLowerCase().split("\\s\
+");
            for(int i = 0; i < words.length; i++){
                numWords = 0;
            }
        }
    }
}

4 个答案:

答案 0 :(得分:3)

如果您的代码仅用于计算单词,那么您根本不需要遍历words数组。换句话说,请将您的for循环替换为:

numWords += words.length;

最有可能的方法是寻找字母序列:

Matcher wordMatch = Pattern.compile("\\w+").matcher(); 
while (wordMatch.find())
    numWords++;

如果您需要对单词进行某些操作(例如将它们存储在地图中以计算),那么这种方法会更简单:

Map<String,Integer> wordCount = new HashMap<>();
Matcher wordMatch = Pattern.compile("\\w+").matcher(); 

while (wordMatch.find()) {
    String word = wordMatch.group();
    int count = wordCount.getOrDefault(word, 0);
    wordCount.put(word, count + 1);
}

答案 1 :(得分:1)

不要担心。我们都是初学者。

首先,你不需要进行循环,因为&#34;长度&#34;属性已经拥有它。但是,如果你想用循环练习就像每次迭代器前进时增加计数器一样容易。

numWords++;

答案 2 :(得分:0)

提示:阅读输入

String sentence = stdin.nextLine();

拆分字符串

String [] words = sentence.split(" ");

句子中的单词数

System.out.println("number of words in a sentence are " + words.length);

您在评论中提到,您还要按字母顺序打印该行。因为Java让你满意:

Arrays.sort(words);

答案 3 :(得分:0)

计算字符串String phrase中单词数量的最佳方法是使用String方法 split String[] words = phrase.split(" ")从中获取String数组并将其作为参数空间本身,这将返回一个包含每个不同单词的String数组,然后您可以简单地检查其长度words.length,这将为您提供确切的数字。