2016-01-01 26 views
2

我想從類似「70.869,78.22,368.12 ...」的文本文件彈出。我使用分隔符編寫了這段代碼,但它不適用於double(編譯項目爲空後我的控制檯)。如果我將其更改爲int,則效果非常好。我想把這個數字放到數組中。從文本文件中彈出雙擊

Scanner src = new Scanner(new File("ala1.txt")); 
src.useDelimiter(", *"); 
float [] taller = new float [15]; 
int k = 0; 

// Read and sum numbers. 
while(src.hasNextDouble()){ 
    //tall[i++] = scanner.nextInt(); 
    System.out.println(src.nextDouble()); 
} 
src.close(); 
+0

請問您的文件只有一個行? – RealSkeptic

回答

3

您的分隔符看起來很好,這表明問題在其他地方。

從您的問題看起來像hasNextDouble沒有看到70.869正確的雙倍。可能的問題可能是您的語言環境而不是.期望,具有雙重價值(並且基於您的代碼,它看起來像您的語言環境是波蘭語,這證實了該理論)。
所以,如果是這樣的話讓你的掃描儀所使用的其他區域,其在雙預期.,而不是像,Locale.ENGLISH

Scanner src = new Scanner("70.869, 78.22, 368.12"); 
src.useLocale(Locale.ENGLISH); 
src.useDelimiter(", *"); 
while(src.hasNextDouble()){ 
    System.out.println(src.nextDouble()); 
} 

輸出:

70.869 
78.22 
368.12