0

フォーマットしてファイルに書き込む文字列がいくつかありますが、

サンプル文字列、

text1
text2
text3
text4
text5
text6
text7
text8
text9
text10
text11
text12
text13

最初の10行は最初の列にあり、残りの行は2番目の列にある必要があります。1列目から2列目までは30のスペースが必要です

これは私が試したものです、

   File f = new File("sample.txt");
        FileWriter fw = new FileWriter(f);
        pw = new PrintWriter(fw);
        String text;

        for(int i=0; i<15; i++){
                text = "text" + i;

                if(i <= 10){
                    pw.format(text + "\n");
                } else{
                    pw.format("%30s",text + "\n");
                }    
            }
        }

期待される出力の画像を添付しました。

ここに画像の説明を入力してください

4

2 に答える 2

2

ループは、15 回 (単語ごとに 1 回) ではなく、10 回 (1 行に 1 回) 繰り返す必要があります。各反復で、次の 2 つの数値を考慮する必要があります。

  • 行番号、および
  • 行番号プラス 10

最初の数字は常に印刷されます。2 番目の数値が 15 以下の場合にのみ、2 番目の数値が最初の数値と共に出力されます。

for(int i=0; i != 10 ; i++) {
    String text1 = "text" + i;
    String text2 = "text" + (i+10);
    if(i <= 5){
        pw.format("%s%30s\n",text1, text2);
    } else {
        pw.format(text + "\n");
    }    
}
于 2013-01-08T03:22:07.987 に答える
0

試す

    for (int i = 1; i <= 10; i++) {
        String text1 = "text" + i;
        String text2 = i <= 3 ? "text" + (i + 10) : "";
        System.out.printf("%s%30s\n", text1, text2);
    }

出力

text1                        text11
text2                        text12
text3                        text13
text4                              
text5                              
text6                              
text7                              
text8                              
text9                              
text10         
于 2013-01-08T04:53:31.423 に答える