计算文本文件程序中的数字和单词

时间:2015-11-14 03:03:22

标签: java input

我需要做一个简单的程序来计算单词的数量,并给出文本文件中的数字总数。程序必须计算所有数字的总和和平均值。平均值是除以计数的总和。文件一起计算数字和单词。它只打印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);
    }
}

3 个答案:

答案 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);

您还应该修改代码以检查数字(我认为您不会在任何地方检查数字)。