我尝试寻找其他解决方案,但似乎无法弄清楚。 我有一个 csv 文件,我需要将具有 NaN 值的每一行替换为整数值。不应该太难,但似乎无法让它发挥作用。
我有以下内容
public class main {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("data/submission.csv");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("data/test2.csv");
String line;
while((line = br.readLine()) != null)
{
line = line.replaceAll("NaN","2.5");
fw.write(line, 0, line.length());
}
fr.close();
fw.close();
}
}
然而,这似乎完全取代了每一列并将其放入一行中。或者,我还希望删除行上的所有空格。也就是说,
应该变成
1, 2.5097082975695546
2、1.8214176758412945
3,NaN
4, 2.756971983384317
5、1.6845822125042142
尝试使用 line = line.replaceAll("", "") 执行此操作。 但同样,格式真的很困惑
1,2.5097082975695546
2,1.8214176758412945
3,2.5
4,2.756971983384317
5,1.6845822125042142
最佳答案
如果您不想在单行上输出,只需添加行终止符:
while((line = br.readLine()) != null)
{
line = line.replaceAll("NaN","2.5") + "\\r\\n";
fw.write(line, 0, line.length());
}
关于java - BufferedReader Java ,替换 CSV 文件中的所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49384547/