您好我正在开发一个简单的学生注册申请,要求用户提供学生信息并将其保存在文件中。该应用程序也用于咨询,删除和修改信息。所提供的信息包括每个学生都有的入学号码,学生姓名和学位。所有这些信息都保存在一个对象中,并写在文件的一行中。我在要求提供信息的方法上遇到了一些麻烦。让我们说我有一个学生的信息是" 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是注册号,然后我将字符串分为标记,如果任何标记与matricula变量匹配,我应该得到该标记所在的行,但它会返回该文件的下一行。
我的代码出了什么问题?
谢谢!
答案 0 :(得分:0)
变化:
st= new StringTokenizer(fileIn.nextLine());
要:
String currentLine = fileIn.nextLine();
st= new StringTokenizer(currentLine);
然后改变:
JOptionPane.showMessageDialog(this,fileIn.nextLine());
要:
JOptionPane.showMessageDialog(this,currentLine);