Scanner.nextDouble():用“。”读取double。

时间:2014-05-07 21:00:45

标签: java

我对Java类扫描程序有一点问题: 我需要读取一个包含Double值的文件(.dat),但似乎Scanner.nextDouble方法只识别这样写的数字:1234,5678,带有“,”但不带“。”。我想知道是否有办法改变它,因为该文件是由另一个软件生成的,所以我不能让它改变“,”为“。”。

由于 罗宾

2 个答案:

答案 0 :(得分:3)

您的默认Locale似乎对double值使用基于逗号的小数点分隔符。尝试使用

scanner.useLocale(Locale.ENGLISH);

答案 1 :(得分:0)

替换,用。

示例:

Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNext()) {
     String s = sc.next();
     Double d = (Double)s.replace(",",".");
}