0

大学のクラスのJavaプロジェクトでは、ASCII画像をユニライン文字列として保存するメソッドがあり、toStringと呼ばれる別のメソッドがこのASCII画像を再構築して文字列として返します。Eclipse でプログラムを実行すると、出力がコンソールに正しく複数行表示され、本来あるべき場所に改行が表示されます。しかし、リダイレクトされた出力ファイルを使用してコマンドラインで実行すると

java myprogram < 入力 > 出力

出力のテキストは改行なしの単行です

メソッドのコードはこちら

public String toString(){

    String output = "";

    for(int i=0; i<height; i++){
        output=output+image.substring(i*width, i*width+width)+"\n";

        }
    return output;  
}

複数行の出力テキスト ファイルを取得するにはどうすればよいですか

4

2 に答える 2

3

\n実行しているオペレーティング システムの正しい行区切りではない場合があります。Java では、System.getProperty("line.separator");改行文字の作成に使用するのが最適です。これにより、プラットフォームに適したものを確実に使用できるようになります

于 2012-04-08T23:04:33.403 に答える
0

Windows の場合の \r\n による高速なソリューション:

public String toString() {
    final String EOL = System.getProperty("line.separator");
    final int EOL_LENGTH = EOL.length();
    StringBuilder output = new StringBuilder(image.length() + EOL_LENGTH * height);
    output.append(image);
    for (int i = 0; i < height; i++) {
        output.insert(i*(width + EOL_LENGTH) + width, EOL);
    }
    return output.toString();  
}
于 2012-04-08T23:16:27.307 に答える