【发布时间】:2016-06-05 22:15:46
【问题描述】:
您好,我正在开发一个简单的学生注册应用程序,它会向用户询问学生信息并将其保存在一个文件中。该应用程序还用于咨询、删除和修改信息。提供的信息包括每个学生唯一的注册号、学生姓名和学位。所有这些信息都保存在一个对象中并写入文件的一行。我在询问信息的方法中遇到了一些麻烦。假设我有一个学生的信息是“33333 John Stevens Medicine” 当我提供注册号时,应用程序会返回文件中 nextLine 的信息。源码如下:
String matricula= matriculafield.getText();
Scanner fileIn;
StringTokenizer st;
try{
fileIn = new Scanner(new FileReader("estudiantes.txt"));
while(fileIn.hasNextLine())
{
st= new StringTokenizer(fileIn.nextLine());
while(st.hasMoreTokens())
{
if(st.nextToken().equals(matricula))
{
JOptionPane.showMessageDialog(this,fileIn.nextLine());
}
}
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "No se encontró al alumno");
}
matricula 是注册号,然后我将字符串划分为标记,如果任何标记与矩阵变量匹配,我应该得到该标记所在的行,但它返回文件的下一行。
我的代码有什么问题?
谢谢!
【问题讨论】:
-
出了什么问题? 你再次调用
nextLine(),从而显示下一行。每次调用nextLine()都会返回一个新行。