【问题标题】:using nextLine() and nextToken methods in files在文件中使用 nextLine() 和 nextToken 方法
【发布时间】: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() 都会返回一个新行。

标签: java string file token


【解决方案1】:

变化:

st= new StringTokenizer(fileIn.nextLine());

收件人:

String currentLine = fileIn.nextLine();
st= new StringTokenizer(currentLine);

然后改变:

JOptionPane.showMessageDialog(this,fileIn.nextLine());

收件人:

JOptionPane.showMessageDialog(this,currentLine);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    相关资源
    最近更新 更多