java: Read text file and store the info in an array using scanner class

和自甴很熟 提交于 2019-12-05 21:26:51

Try useDelimiter(" \\$ |[\\r\\n]+");

        String stuName = scanner.next(); // not nextLine()!
        int midTirmGrade = scanner.nextInt();
        int finalGrade = scanner.nextInt();

Your problems were that:

  • You mistakenly read whole line to get student name
  • $ is a regex metacharacter that needs to be escaped
  • You need to provide both line delimiters and field delimiters

Your while loop is off.

nextLine() will get you all what's left of the line and advance the cursor to there. nextInt() will then jump delimiters until it finds an int. The result will be skipping of values.
Assuming Kim and Jack were on different lines you would get:

stuName == "Kim $ 40 $ 45"
midTirmGrade == 35
finalGrade == 40

as your output; which isn't what you want.

Either you need to use the end-of-line as the delimiter or use a StringTokenizer to break each line up and then parse each of the sections as individual tokens.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!