我使用的是Windows 7的機器,其「控制面板\時鐘,語言和區域」是「丹麥」Java掃描程序如何解析雙精度?
根據文檔的Scanner:
掃描器的初始語言環境是價值由Locale.getDefault()方法返回;
但是當我運行的代碼:
System.out.println(Locale.getDefault());
Scanner sc = new Scanner("1.0");
sc.nextDouble();
它輸出 「EN_US」,然後在sc.nextDouble拋出一個java.util.InputMismatchException()。
Locale.setDefault(Locale.US);
System.out.println(Locale.getDefault());
Scanner sc = new Scanner("1.0");
sc.nextDouble();
輸出「EN_US」,然後解析雙就好: 當掃描儀以「1,0」
初始化但是,如果我明確設置區域設置它的工作原理。我錯過了什麼,或者是掃描儀的文檔錯誤?
編輯根據@Perception的建議,我在第一個示例中查看了sc.locale()。它打印「da_DK」。那麼爲什麼它不是「en_US」,當Locale.getDefault()方法返回時呢?
似乎你的電腦認爲它在法國或法國加拿大...... – 2013-03-26 17:40:28
爲什麼會打印出'en_US'呢?但@AndrewMao一定是對的,它對我有用。 – 2013-03-26 17:40:42
文檔的哪些部分是不可理解的? – 2013-03-26 17:43:35