如何将CSV文件中的NaN值转换为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

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 .:你选择了最受欢迎的昵称! ;) –