输入文件以这种方式一次一行地包含数据:第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
答案 0 :(得分:0)
一种可能的方法(伪代码)
初始化计数器(以跟踪字符串数量)
int stringCounter = 0;
Scanner scan = new Scanner(file);
遍历每一行并通过尝试解析值确定该行是否为数字
while(scan.hasNext()) {
String currentLine = scan.nextLine();
try {
Integer i = Integer.valueOf(currentLine);
} catch (NumberFormatException nfe) {
stringCounter++;
}
}
退出循环后,您的计数器将有答案