3 回答
TA贡献1810条经验 获得超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条经验 获得超6个赞
值之间有多个空格。例如"0015 112.34".split(" ")
,{"0015","","","","","","","112.34"}
当您使用索引 1 时,您只会得到一个空字符串。您应该按整个空格序列分割该行,例如account.split("\\s+")
(使用正则表达式)。
另请注意,您不需要扫描仪来查找双精度值。你可以只使用Double.valueOf(balanceAsString)
. 请记住,按照惯例,所有变量名称都应以小写字母开头。
TA贡献1848条经验 获得超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);
添加回答
举报