3 回答

TA貢獻1848條經驗 獲得超10個贊
我認為您的邏輯應該是從掃描儀讀取整個輸入行。然后,進行完整性檢查以確保它只有兩個由空格分隔的術語。如果是這樣,則將單詞和數字分配給它們各自的數組。
System.out.println("Write a name and number (separate with blankspace), end with 'q'");
while (true) {
String full = in.nextLine();
if ("q".equals(full)) {
break;
}
String[] parts = full.split("\\s+");
if (parts.length != 2) {
// you could also just break here as well, but throwing an exception
// is something you might actually do in a production code base
throw new IllegalArgumentException("Wrong number of input terms; use 2 only");
}
listNames.add(parts[0]);
listNumbers.add(Integer.parseInt(parts[1]));
}

TA貢獻1786條經驗 獲得超11個贊
使用 String.split() 函數會更容易得到你想要的。
正如您所提到的,輸入由空格分隔。假設輸入是“Jordan 19”,那么您可以使用如下內容:
String [] data = full.split(" "); //split the input by a blank space
listNames.add(data[0]); //data[0] = Jordan
listNumbers.add(Integer.parseInt(data[1])); //data[1] = 19
如果您的所有輸入都是一個字符串,然后是一個數字,這應該可以工作

TA貢獻1725條經驗 獲得超8個贊
ArrayLists 從索引 0 開始。因此,如果要輸出 ArrayList 中的第一個 Item,則必須編寫System.out.println(listNames.get(0));
添加回答
舉報