3 回答

TA貢獻1810條經(jīng)驗 獲得超5個贊
Scanner您可以簡單地使用Double.parseDouble()來獲取第二列的值,而不是使用附加值,即
void readLine(String Account) {
String[] part1 = Account.split(" ");
String account = part1[0];
double balance = Double.parseDouble(part1[1]);
Accounts line = new Accounts(account, balance);
...
}
如果列不是由單個空格分隔的,那么最好使用更通用的分隔符,例如split("\\s+")可接受多個空格和制表符。

TA貢獻1803條經(jīng)驗 獲得超6個贊
值之間有多個空格。例如"0015 112.34".split(" ")
,{"0015","","","","","","","112.34"}
當您使用索引 1 時,您只會得到一個空字符串。您應該按整個空格序列分割該行,例如account.split("\\s+")
(使用正則表達式)。
另請注意,您不需要掃描儀來查找雙精度值。你可以只使用Double.valueOf(balanceAsString)
. 請記住,按照慣例,所有變量名稱都應以小寫字母開頭。

TA貢獻1848條經(jīng)驗 獲得超2個贊
使用split(" +")或 更好地split("\\s+")在空白處(也包括制表符)進行多次分割,至少一次。也hasNextLine/hasNextDouble比hasNext.
實際上:
String[] part1 = Account.split("\\s+");
String account = part1[0];
String balance1 = part1[1];
double balance = Double.parseDouble(balance1);
添加回答
舉報