gpt4 book ai didi

java - 解析文件输入中的数字

转载 作者:行者123 更新时间:2023-12-01 04:54:16 24 4
gpt4 key购买 nike

我正在使用扫描仪方法来尝试获取文件输入。问题是我只得到名字和姓氏之后的第一个整数。这是文本文件:

John Doe 12 6 8 15 35 16 17 4 12 54
Mark Doe 16 67 8 12 35 19 78 3 12 101
Johnnie Smarts 20 10 10 20 40 100 20 10 20 100
Frank Noshow
Molly Guess 2 5 6 7 2 4 7 8 9 10

到目前为止我已经完成了这么多代码:

import java.io.*;
import java.util.*;
import static java.lang.Math.*;
import static java.lang.System.out;

public class StudentTester
{
public static void main ( String[] args ) throws IOException
{
Scanner kb = new Scanner(System.in);
System.out.println("\tWelcome.. " );
System.out.println(" Please enter the file name. " );
String filename = kb.nextLine();
Scanner fileReader = new Scanner(new File(filename));
//created a scanner object with a file object.
//Creat a String array to hold each lince of the file.
String [] s = new String [10000]; //prepared for a 100 lines of text.
int linesOfText = -1;
int score[] = new int[10];
while (fileReader.hasNextLine())//while the file has any lines.
{
linesOfText++;

s[linesOfText] = fileReader.nextLine();
//This places the first line of the file in the s array.
//System.out.println(s[linesOfText]);//for testing purposes..
}
fileReader.close();//close the Scanner.

for(int i=0;i<=linesOfText;i++){
Scanner sc = new Scanner(s[i]);
String fN = sc.next();
String lN = sc.next();

if(sc.hasNext()){
score[i] = sc.nextInt();
}
else {
System.out.println(" opps, there is no score here... ");
}
Student stu = new Student(fN,lN,score);
System.out.println(score[i]);
}
}
}

最佳答案

这是因为您先执行了 next(),然后执行了 next(),然后执行了 nextInt()

直接替换即可

if (sc.hasNext()) {...} 

while (sc.hasNext()) {...}

关于java - 解析文件输入中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14429989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com