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