如何将每个值添加到单独的行?

How to add each value to a separate line?

我的代码确实读取和写入文件,但它没有为每个值换行,而是在一行中打印每个值。

// 2 points
static void Q1(String inputFilename, String outputFilename) {
    // You are given a csv file (inputFilename) with all the data on a single line. Separate the
    // values by commas and write each value on a separate line in a new file (outputFilename)

        String data = "";
        try {
            for(String s :Files.readAllLines(Paths.get(inputFilename))){
                data = data + s;
            }
            Files.write(Paths.get(outputFilename), data.getBytes());
        } catch (IOException e) {

            e.printStackTrace();
        }
}

评分者如是说:

Incorrect on input: [data/oneLine0.csv, output0.txt]
Expected output : overwrought plastic bomb
wrapped litter basket
obstetric matter of law
diabetic stretching
spatial marathi
continental prescott
reproductive john henry o'hara
hollow beta blocker
stereotyped national aeronautics and space administration
irremediable st. olaf
brunet fibrosis
embarrassed dwarf elm
superficial harrier
disparaging whetstone
consecrate agony
impacted lampoon
nefarious textile
some other organisation
Your output     : overwrought plastic bomb,wrapped litter basket,obstetric matter of law,diabetic stretching,spatial marathi,continental prescott,reproductive john henry o'hara,hollow beta blocker,stereotyped national aeronautics and space administration,irremediable st. olaf,brunet fibrosis,embarrassed dwarf elm,superficial harrier,disparaging whetstone,consecrate agony,impacted lampoon,nefarious textile,some other organisation

首先,您需要从 CSV 文件中删除逗号。我建议使用
s = s.replace(",",""); 此外,您必须向每个字符串附加一个 \n 以使其出现在新行中。所以,你应该添加 s += "\n"; 这会产生代码:

// 2 points
static void Q1(String inputFilename, String outputFilename) {
// You are given a csv file (inputFilename) with all the data on a single line. Separate the
// values by commas and write each value on a separate line in a new file (outputFilename)

    String data = "";
    try {
        for(String s :Files.readAllLines(Paths.get(inputFilename))){
            s.replace(",","");
            s += "\n";
            data = data + s;
        }
        Files.write(Paths.get(outputFilename), data.getBytes());
    } catch (IOException e) {

        e.printStackTrace();
    }
}
String data = "";
try {
    // input file has all data on one line, for loop isn't necessary here
    // input file has elements separated by comma characters
    for(String s : Files.readAllLines(Paths.get(inputFilename))){
        data = data + s;
    }
    String[] separated = data.split(",");// does not handle embedded commas well
    data = "";
    // output file should have each comma separated value on its own line
    for (String t : separated) {
        data = data + t + System.getProperty("line.separator");
    }
    Files.write(Paths.get(outputFilename), data.getBytes());
}