我正在阅读的文件String后跟int一行,然后继续,直到它到达这个字符:*
例如:
A 1300
B 1200
C 1100
D 1000
*
Run Code Online (Sandbox Code Playgroud)
我需要它来停止读取文件,并在它到达星星时停止循环.当我执行if语句时,它没有读入*,它将按预期跳到下一行,但这会导致与读入的下一个标记的对齐问题.
这是我的代码:
static GradingScale reportCard = new GradingScale();
public static void main(String[] args) {
readInputFile();
javax.swing.JOptionPane.showMessageDialog(null,reportCard.toString());
}
public static void readInputFile(){
try{
Scanner file = new Scanner(new File("grades.txt"));
int maxPoints = file.nextInt();
reportCard.setMaxPoints(maxPoints);
while(!file.hasNext("*")){
String grade = file.next();
int points = file.nextInt();
double percent = points/(maxPoints*1.0);
reportCard.addGradeLevel(grade, points, percent);
}
}
catch(java.io.FileNotFoundException fnfe){
javax.swing.JOptionPane.showMessageDialog(null, "File not found");
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用该hasNext(Pattern)方法,但我不断收到此错误: …