我需要做一个简单的程序来计算单词的数量,并给出文本文件中的数字总数。程序必须计算所有数字的总和和平均值。平均值是除以计数的总和。文件一起计算数字和单词。它只打印34。
//CAT DOG BIRD FISH
//1 2 3 4 5
//TURTLE LIZARD SNAKE
//6 7 8 9 10
//FISH SHARK
//11 12 13 14 15
//SPIDER FLY GRASSHOPPER ANT SCORPION
//16 17 18 19 20
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class HomeWork8 {
public static void main(String[] args) throws IOException {
String words, numbers, message;
int numberWords = 0, countNumber = 0;
FileInputStream fis = new FileInputStream("/Users/ME/Documents/Words and Numbers.txt");
Scanner in = new Scanner(fis);
while (in.hasNext()) {
words = in.next();
numberWords++;
}
while (in.hasNext()) {
in.useDelimiter("");
numbers = in.next();
countNumber++;
}
in.close();
message = "The number of words read from the file was " + numberWords
+ "\nThe count of numbers read from the file was" + countNumber;
JOptionPane.showMessageDialog(null, message);
}
}
答案 0 :(得分:3)
String pattern ="\\d";
String word="shdhdshk 46788 jikdjsk 9 dsd s90 dsds76";
Matcher m = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE).matcher(word);
int count=0;
while (m.find()) {
count++;
}
System.out.println(count);
如果您需要获得单个数字字符数,可以使用 \ d 。但如果您对整数出现感兴趣,那么您必须使用 \ d + 而不是 \ d 。例如:46788,9,90,76
答案 1 :(得分:2)
您甚至可以使用正则表达式来过滤单词和数字,如下所示:
table:<id>:col1
table:<id>:col2
table:<id>:coln
}
您需要在文件管理器的内容中进行一次迭代,而不是使用2个while循环。
答案 2 :(得分:1)
在第二个while (in.hasNext()) {
之前,您应该通过添加以下代码来重置流:
in = new Scanner(fis);
您还应该修改代码以检查数字(我认为您不会在任何地方检查数字)。