java - BufferedReader Java ,替换 CSV 文件中的所有匹配项

标签 java csv replace bufferedreader

我尝试寻找其他解决方案,但似乎无法弄清楚。 我有一个 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/

相关文章:

java - 如何将 Camel 中的 BeanInvocation 对象转换为消息正文和 header ?

java - 是否有可能 "reset"一个 MigLayout

php 发送带有 .csv 附件的 html 电子邮件

javascript - 用图像替换字符串中的标志,无限次

c# - 正则表达式如何合并执行

java - Config.properties 仅在调用两次时返回值

couchbase - 如何在列表中从 couchbase 中的存储桶中提取所有 key

csv - 我应该为 CSV 使用什么 MIME 类型?

sql-server - 在使用 SSIS 加载到 SQL Server 数据库之前更改 CSV 中列的格式

javascript - 使用正则表达式在 JavaScript 中将一个单词替换为另一个单词零次或多次