计算.txt输入文件中字符串出现次数

时间:2014-12-05 15:41:59

标签: java input count

输入文件以这种方式一次一行地包含数据:第1行:字符串,第2-4行:整数,第5行:字符串等。我需要计算字符串总数并忽略整数。我怎么能这样做?这是我的代码:

import java.util.Scanner;
import java.io.*;
public class Project5 {

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.println("Enter the file name: ");
    String fileName = in.nextLine();
    int stringCounter = 0;
    try {
        File file = new File(fileName);
        Scanner inputFile = new Scanner(file);
        String SnumStudents = inputFile.nextLine();
        int numStudents = Integer.parseInt(SnumStudents);
        Student [] studentList = new Student[numStudents];
        for (int i = 0; i < numStudents; i++)
        {
            String line = inputFile.nextLine();
            String score1 = inputFile.nextLine();
            String score2 = inputFile.nextLine();
            String score3 = inputFile.nextLine();
            studentList [i] = new Student(line, Integer.parseInt(score1), Integer.parseInt(score2), Integer.parseInt(score3));
        }
        System.out.println("Name\t\tScore1\tScore2\tScore3\tTotal");
        System.out.println("---------------------------------------------");
        for (int i=0; i< studentList.length;i++){
            System.out.println(studentList[i].getName() + "\t" + studentList[i].getScore1() + "\t" + studentList[i].getScore2() + "\t" + studentList[i].getScore3() + "\t" + studentList[i].getTotal());
        }
        System.out.println("---------------------------------------------");
        Integer i = Integer.valueOf(SnumStudents);
        stringCounter++;
        System.out.println(stringCounter);
        inputFile.close();
    } catch (IOException e) {
        System.out.println("There was a problem reading from " + fileName);
    }
    finally {
    }
    in.close();
}
}

输入文件:

9
Andy Borders
200
250
400
John Smith
120
220
330
Alvin Smith
225
300
278

1 个答案:

答案 0 :(得分:0)

一种可能的方法(伪代码)

  1. 初始化计数器(以跟踪字符串数量)

    int stringCounter = 0;
    
  2. 使用Reader or a Scanner

    Scanner scan = new Scanner(file);
    
  3. 遍历每一行并通过尝试解析值确定该行是否为数字

    while(scan.hasNext()) {
        String currentLine = scan.nextLine();   
        try {
            Integer i = Integer.valueOf(currentLine);
        } catch (NumberFormatException nfe) {
            stringCounter++;
        }
    }
    
  4. 退出循环后,您的计数器将有答案