2017-05-04 5 views
0

私のコードはファイルを読み書きしますが、すべての値に対して新しい行にはなく、代わりにすべての値を1行に出力します。各値を別々の行に追加するにはどうすればよいですか?

// 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(); 
    } 
} 
関連する問題