4

プログラムを実行すると、次のようになります。

run:
                                            Heat Index: Key West, Florida



            Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
____________________________________________________________________________________________________________________________________

Temperature:      70.3      70.8      73.8      77.0      80.7      83.4      84.5      84.4      83.4      80.2      76.3      72.0
   Humidity:      69.0      67.0      66.0      64.0      66.0      69.0      67.0      67.0      70.0      69.0      69.0      70.0BUILD SUCCESSFUL (total time: 0 seconds)

これを表示して、月が数値の各列と一致するようにします。たとえば、1 月が数値の最初の列と一致するようにします。月を揃えると、数字の各列の間に7つの空白があることがわかります。問題は、空白のような空白を作成する方法がわからないため、printf を使用して、Temperature: 見出しの上に月が表示されないことです。どんな助けでも大歓迎です。

4

4 に答える 4

3

System.out.printf()を使用し、幅に適切なフラグを渡す必要があります。書式設定の構文については、こちらを参照してください。

String[] months = 
{"Jan",  "Feb",  "Mar",   "Apr",  "May", "Jun",   "Jul",  "Aug",
 "Sep",  "Oct",  "Nov",  "Dec"};
Double[] temper = 
    {70.3, 70.8, 73.8, 77.0, 80.7, 83.4, 84.5, 84.4, 83.4, 80.2, 76.3, 72.0};
Double[] humid = 
    {69.0, 67.0, 66.0, 64.0, 66.0, 69.0, 67.0, 67.0, 70.0, 69.0, 69.0, 70.0};

System.out.printf("            %7s%7s%7s%7s%7s%7s%7s%7s%7s%7s%7s%7s\n",
    (Object[])months);
System.out.printf("________________________________________"
    + "________________________________________________________\n");
System.out.printf("Temperature:%7.1f%7.1f%7.1f%7.1f%7.1f"
    + "%7.1f%7.1f%7.1f%7.1f%7.1f%7.1f%7.1f\n", 
    (Object[])temper);
System.out.printf("   Humidity:%7.1f%7.1f%7.1f%7.1f%7.1f"
    + "%7.1f%7.1f%7.1f%7.1f%7.1f%7.1f%7.1f\n",
    (Object[])humid);
于 2013-11-13T18:40:21.343 に答える
-2

これを試してください..各印刷の間にスペースを指定できます..

        String[] day = {"Sun", "Mon", "Tues", "Friday","Saturday"};
        for(String s :day){
            System.out.printf("%15s", s);
        }
于 2013-11-13T18:44:43.107 に答える
-5

これにより、正確に 4 つのスペースに加えて、月が占める 3 つのスペースが出力されます。また、文字列を表示したいだけなら、printf は必要ありません。以下に 2 つのオプションを示します。

System.out.printf("    %s", month);

また

System.out.print("    " + month);

また、スペースをハードコーディングせずにこれを行う方法を考え出すことをお勧めします。たぶん、幅を変更できるスペースを印刷するループを設定します。

于 2013-11-13T18:43:24.853 に答える
-5

この System.out.println("\n"); を試してください。

于 2016-07-29T04:42:48.937 に答える