如何从扫描仪中读取双打并将它们放入arraylist中

时间:2016-10-26 18:24:48

标签: java arrays double java.util.scanner

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()); 
}

之后我尝试做过这样的事情但是没有用。

1 个答案:

答案 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