如何使用JTextArea输入的字符串的字符查找单词的平均值

问题描述 投票:0回答:2

我正在使用JTextArea编写用于分配的程序,以使用户手动输入文本,然后I /该程序计算简单的统计信息。我遇到的问题是,当我计算输入的每个单词的平均长度时,它无法正确计算(即:单词:2,字符:6,平均长度:3,但我的程序当前显示为3.5)。

我已经尝试过(double)和(float),而在(count ++)/ words.length前面没有任何内容,看是否是程序的舍入错误,并且根本不影响输出。

我还认为可能是因为它是对空格''的计数,所以我在一段代码中发现了该空格,它不包括对输入字符串的字符进行计数的空格。 @ https://www.quora.com/How-do-I-count-characters-in-a-string-in-Java-without-using-charcount

我对Java还是很陌生,我们将不胜感激!我觉得这是一个简单的解决方案,只是我还没有看到的。我已经包含了与此相关的代码部分,而没有包含的所有内容都是我创建文本字段,框架和按钮等...

public void actionPerformed(ActionEvent event){

        String parsedString = inputText.getText();
        String delims = "[1234567890.,?!()*\\s]+";
        String words[]=parsedString.split(delims);

        char [] ch = parsedString.toCharArray();
        int count=0;
        for (int i = 0; i < ch.length; i++) {
            if (ch[i]!=' '){
            count++;
            }
        }

        wordCounter.setText("Words inputed: " + words.length);
        wordCharacters.setText("Characters:" + count++ );
        wordAverage.setText("Average Length: " + (float) (count++)/words.length ); 

    }
java average jtextarea gettext string-length
2个回答
0
投票

为什么将count ++除以单词count而不仅仅是count


0
投票

在代码中使用parsedString之前,您需要对其进行修剪。它删除字符串中的前导和尾随空格。

这里wordCharacters.setText("Characters:" + count++ );wordAverage.setText("Average Length: " + (float) (count++)/words.length );在这里count++是不必要的,因为它增加了从for循环计算出的计数。这是您的代码中的问题。请检查以下答案。

public void actionPerformed(ActionEvent event) {
    String parsedString = inputText.getText().trim();
    String delims = "[1234567890.,?!()*\\s]+";
    String[] words = parsedString.split(delims);

    char[] ch = parsedString.toCharArray();
    int count = 0;
    for (int i = 0; i < ch.length; i++) {
        if (ch[i] != ' ') {
            count++;
        }
    }
    wordCounter.setText("Words inputed: " + words.length);
    wordCharacters.setText("Characters:" + count);
    wordAverage.setText("Average Length: " + (float) (count) / words.length);
}
© www.soinside.com 2019 - 2024. All rights reserved.