我正在直接从我的代码写一个地址到一个带有文件写入器的文件,这些值存储在文件示例中的一行(街道264,华盛顿)。现在我想用一个构造函数写一个新的Arraylist,它要求输入三个值(街道,数字,城市)
我已经用这种方式完成了它,但是当我输入像“公园大道”这样的街道时,它给出了一个错误,因为Park avenue是两个单词......也想知道是否有更快“更好”的方式:
@Override
public List<Adres> query(ISpecification specification) {
File adresConnection = new File(fsConnection.getAdresConnection());
if (specification instanceof FileSpecification) {
if (((FileSpecification) specification).toFileQuery().equals("ALL")) {
ArrayList<Adres> adressen = new ArrayList<>();
try (
Scanner input = new Scanner(adresConnection)) {
System.out.println("Adressen laden wordt uitgevoerd");
while (input.hasNext()) {
String straat = input.next();
String huisNrMetKomma = input.next();
int huisNummer = Integer.parseInt(huisNrMetKomma.substring(0, huisNrMetKomma.length() - 1));
String plaats = input.next();
adressen.add(new Adres(straat, huisNummer, plaats));
}
答案 0 :(得分:0)
nextLine读取多个单词,所以尝试使用nextLine();而不是next();
while (input.hasNext()) {
String straat = input.nextLine();
String huisNrMetKomma = input.nextLine();
int huisNummer = Integer.parseInt(huisNrMetKomma.substring(0, huisNrMetKomma.length() - 1));
String plaats = input.nextLine();
adressen.add(new Adres(straat, huisNummer, plaats));
}