我正在使用以下代码:
String val = scanner.nextLine();
Scanner line = new Scanner(val);
System.out.println(val);
System.out.println(line.nextDouble());
其中输出为:
9.612771780095113E-25 10.0 0.0 0.7660444431190742 1.2679145539688897E-5 0.0 1.0E11
null
其中null是我捕获的异常消息(e.getMessage
)。我不明白这是怎么回事?为什么它不能识别此字符串中的双精度值?
答案 0 :(得分:1)
根据javadoc,Scanner默认使用本地化符号;阅读本地化数字部分。如果您不知道您的语言环境,请调用Locale.getDefault()并检查您的本地化符号,然后将它们用于双打。