gpt4 book ai didi

使用Scanner时出现Java异常错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:44 28 4
gpt4 key购买 nike

有人可以帮我看看问题出在哪里吗?我意识到使用 字符串种类 = sc.next();可能会带来问题。如果这是问题,我该如何解决它。先感谢您。这是代码。

import java.io.*;
import java.util.*;

public abstract class Account {

protected static AccountNumber accountNumber;
protected Customer customer = null; // not to be used yet

public abstract MeterNumber[] getMeterNumbers();
public abstract boolean exists(String meterNumber, String tariff);

public static Account load(Scanner sc) {
while (sc.hasNextLine()) {
AccountNumber accountNumber = AccountNumber.fromString(sc.nextLine());
String kind = sc.next();
sc.nextLine();
if (kind.equals("D")) {
return new DomesticAccount(sc, accountNumber);
} else {
return new CommercialAccount(sc, accountNumber);
}
} {
return null;
}
}

}

main中的代码如下。

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;


public class Testt {

public static void main(String[] args) {


Account.load(new Scanner("Accounts3.txt"));

Map <AccountNumber, String> map1 = new HashMap <AccountNumber, String>();

map1.put(Account.accountNumber, "hello");

System.out.println(map1);

}
}

这是我收到的错误。

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at Account.load(Account.java:20)
at Testt.main(Testt.java:14)

最佳答案

您正在字符串对象上创建扫描仪。这只是“Accounts3.txt”。这只是一行。

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner(java.lang.String)

我认为您需要创建文件扫描仪。

引用这个:

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner(java.io.File)

所以你的主要方法将创建这样的扫描仪:

Account.load(new Scanner(new java.io.File("Accounts3.txt")));

关于使用Scanner时出现Java异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26686540/

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