2017-05-04 64 views
0

我的代碼確實讀取和寫入文件,但不是每個值的新行,而是將每個值打印在一行中。如何將每個值添加到單獨的行?

// 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 

回答

3
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()); 
} 
3

首先,你需要從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(); 
    } 
} 
相關問題