如何使用 JTextArea 输入字符串的字符查找单词的平均值
How to find the average of words using the characters of the JTextArea inputted string
我正在为使用 JTextArea 的作业编写一个程序,让用户手动输入文本,然后 I/the 程序计算简单的统计数据。我遇到的问题是当我计算输入的每个单词的平均长度时,它计算不正确(即:单词:2,字符:6,平均长度:3,但我的程序当前显示 3.5)。
我已经尝试了 (double) 和 (float) 以及 (count++)/words.length 前面的任何内容,以查看它是否是程序的舍入错误并且根本不影响输出。
我还认为可能是因为它计算了 spaces ' ' 所以我在一段代码中发现在计算输入字符串的字符时排除了 space。 @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 );
}
您需要 trim 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);
}
我正在为使用 JTextArea 的作业编写一个程序,让用户手动输入文本,然后 I/the 程序计算简单的统计数据。我遇到的问题是当我计算输入的每个单词的平均长度时,它计算不正确(即:单词:2,字符:6,平均长度:3,但我的程序当前显示 3.5)。
我已经尝试了 (double) 和 (float) 以及 (count++)/words.length 前面的任何内容,以查看它是否是程序的舍入错误并且根本不影响输出。
我还认为可能是因为它计算了 spaces ' ' 所以我在一段代码中发现在计算输入字符串的字符时排除了 space。 @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 );
}
您需要 trim 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);
}