2016-02-27 183 views
0
while (scan.hasNext()){ 
     String line = scan.nextLine(); 
     scan.hasNextLine(); 
     line = line.trim(); 
     int countWhitespace = line.length() - line.replaceAll(" ", "").length(); 

     if (line.length() >0){ 
      int k = -1; 
      int j = -1; 

      k = -1; 
      while (true){ 
       k = line.indexOf(NaN, k+1); 
       if (k<0) break; 
       String result = NaN.replaceAll("NaN", value); 
      } 

     } 
    } 
  • 我有一個CSV文件幷包含NaN值。
  • 我想讀取此文件並將NaN更改爲0.
  • 我該如何解決這個問題?

謝謝。如何將CSV文件中的NaN值轉換爲0?

+1

你是閱讀還是書寫?那麼,我想這並不重要:'if(Double.isNaN(value))value = 0.0;' – Andreas

+0

首先編寫代碼。 – Jens

+0

對不起,忘了密碼,我已經把我的密碼了。 – Anonymous

回答

0

k = line.indexOf(NaN, k+1); - 這不起作用,因爲lineString

更改爲:

k = line.indexOf("NaN", k+1); 
if (k<0) 
    break; 
String result = String.replace("NaN", value); 

value應該String類型的了。

如果轉換每個Stringdouble地方後,你可以 喜歡這個舞臺上轉換NaNdouble秒。


我喜歡這種優雅的方法來刪除NaN數字:!

if (some_double!=some_double) 
    some_double=0.0 

因爲

任何=比較涉及到NaN的返回true,包括X = X時X是NaN的。

+0

Ohhhh !!!非常感謝你。 – Anonymous

+0

@Anonymous一點都不! P.S .:你選擇了最受歡迎的暱稱! ;) –