所以我必须将此文件读入链接列表,但是当我运行代码时,它显示每个 scanner.next();
的来源未知,关于如何修复它有任何想法吗?
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Scanner;
public class LinkedMain
{
public static <bankacctinfo> void main(String args[]) throws IOException
{
File fil1 = new File("AcctList");
Scanner scanner = new Scanner(fil1).useDelimiter("[,|\n/\r]+");
LinkedList<BankAcctInfo>list=new LinkedList<BankAcctInfo>();
String nameFirst;
String nameLast;
int pin;
double balance;
while(scanner.hasNext())
{
nameFirst = scanner.next();
nameLast = scanner.next();
pin = scanner.nextInt();
balance = scanner.nextDouble();
BankAcctInfo b1 = new BankAcctInfo(nameFirst, nameLast, pin, balance);
list.add(b1);
}
scanner.close();
}
最佳答案
根据this thread您的堆栈跟踪报告未知源错误,因为您使用的是 JRE 而不是 JDK。您应该确保已从 Oracle 网站安装了最新版本的 JDK 并设置 Eclipse 来使用它。这将为您提供更多信息丰富的堆栈跟踪。
话虽这么说,您的错误可能与使用 Scanner
以及 next()
和 nextInt()
方法有关。我过去在这方面遇到了麻烦,因为它奇怪地处理换行符,如 this thread 中详述。 。本质上,nextInt()
不消耗换行符。
其中的建议之一就是我所做的,即仅使用 next()
,然后使用 Integer.valueOf(x)
解析应该是整数的行。
所以:
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Scanner;
public class LinkedMain
{
public static <bankacctinfo> void main(String args[]) throws IOException
{
File fil1 = new File("AcctList");
Scanner scanner = new Scanner(fil1).useDelimiter("[,|\n/\r]+");
LinkedList<BankAcctInfo>list=new LinkedList<BankAcctInfo>();
String nameFirst;
String nameLast;
int pin;
double balance;
while(scanner.hasNext())
{
nameFirst = scanner.next();
nameLast = scanner.next();
pin = Integer.valueOf(scanner.next());
balance = Double.valueOf(scanner.nextDouble());
BankAcctInfo b1 = new BankAcctInfo(nameFirst, nameLast, pin, balance);
list.add(b1);
}
scanner.close();
}
}
关于java - Eclipse 声称来源不明,我不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468173/