Scanner data = new Scanner("2.30 4.50 10.35 200.61 82.00");
ArrayList<Double> test = new ArrayList<Double>();
这就是我所拥有的,我不需要从鼠标输入,但我 使用扫描仪来输入我的值。我正在测试一个检索和存储数据的类和数组列表,但我需要先将扫描仪中的值放入列表中。
while(data.hasNextDouble()) {
testUno.add(data.nextDouble());
}
之后我尝试做过这样的事情但是没有用。
答案 0 :(得分:0)
您需要明确设置Locale
使用点作为小数点分隔符(如输入值中),否则如果您的默认语言环境使用例如逗号作为分隔符,您的值将赢得double
不会将Scanner
视为hasNextDouble()
,false
将返回Scanner data = new Scanner("2.30 4.50 10.35 200.61 82.00");
// Set the locale to US as it is a locale that uses a dot as decimal separator
data.useLocale(Locale.US);
List<Double> testUno = new ArrayList<>();
while(data.hasNextDouble()) {
testUno.add(data.nextDouble());
}
System.out.println(testUno);
,为此目的使用Scanner#useLocale(locale)
作为下一个目的:
[2.3, 4.5, 10.35, 200.61, 82.0]
<强>输出:强>
git add .
git am --resolved
扫描仪#useLocale(区域设置区域设置)
将此扫描仪的语言环境设置为 指定的区域设置。扫描程序的区域设置会影响其中的许多元素 默认原语匹配正则表达式;见localized numbers。