0

出力に問題はありません01:08.0 02:07.6 03:07.1 04:07.1 05:07.4 06:07.2 07:07.6 08:07.1 09:07.1 10:07.2 onは私に対応する時間を与えます。出力は実際には次のようになります。1:8.035156,2:7.619141,3:7.105469,4:7.072266間違った出力は、appendステートメントの最後に「、」文字を追加した場合にのみ発生します。

public class GeneCsv {
 public static void main(String[]args) throws IOException{
File file = new File("file.csv");
FileWriter writer = new FileWriter("/Users/home/fileExpression.csv");
PrintWriter pw = new PrintWriter(writer);
Scanner in = new Scanner(file);
boolean firstLine = true;
String[] temp = null;
while(in.hasNextLine()){
    if(firstLine== true){


        pw.println(in.nextLine());
        firstLine= false;
        continue;
    }
    else{
    String line = in.nextLine();
    temp = line.split(",");
    for(int i =0; i < temp.length ; i++){
        pw.append(i + ":" + temp[i] + ",");

    }
    pw.append("\n");
    }
    }


pw.flush();
pw.close();
writer.close();
}
    }
4

3 に答える 3

0

pwに改行を出力することはありません。forループの外側でpw.print("\n");

于 2012-05-22T04:36:16.960 に答える
0

あなたの質問から私が理解していることは、コンマで区切られた各値を別々の行に出力する必要があるということです。

そのためには、ループ"\n"の外側に改行文字を出力します。for

for(int i =1; i < temp.length ; i++){
   pw.print(i + ":" + temp[i]);    
}
pw.print("\n");

お役に立てれば!

于 2012-05-22T04:41:51.823 に答える
0

改行を入れることに加えて、カンマを保持したい場合は、このように追加する必要があります。pw.print(i + ":" + temp[i] + ",") 分割配列はスプリッターを保持しないためです。

于 2012-05-22T06:37:34.197 に答える