0

私のコードのスニペット:

...
    System.out.println("\t" + "MONTH |" + "\t" + "HIGH | " + "\t" + "LOW |" + "\t" + "AVERAGE |" + "\t" + "RANGE");
    System.out.println("\t" + "______________________________________________");

    main.averageMonthOne(hightemp, lowtemp);

    in1.close();
    out.close();                
}//end of main 


private static double averageMonthOne (int hightemp, int lowtemp)
{
    double avgM = (hightemp + lowtemp)/2;
    System.out.println(avgM);
    return avgM;
} 

averageMonthOne受け取った平均を使用して、println の「AVERAGE」という単語の下にそれぞれ配置できるようにしたいと考えています。それは可能ですか?

期待される出力:

MONTH | HIGH | LOW | AVERAGE | RANGE
_____________________________________
                      30.0
4

4 に答える 4

0

非常に可能です コードを次のように変更するだけです:

...
System.out.println("\t" + "MONTH |" + "\t" + "HIGH | " + "\t" + "LOW |" + "\t" + "AVERAGE |" + "\t" + "RANGE");
System.out.println("\t" + "______________________________________________");

double myresult = main.averageMonthOne(hightemp, lowtemp);
System.out.println("\t\t\t\t" + myresult);

in1.close();
out.close();                

}//メインの終わり

private static double averageMonthOne (int hightemp, int lowtemp) { double avgM = (hightemp + lowtemp)/2; System.out.println(avgM); avgM を返します。}

于 2013-04-12T11:51:43.803 に答える
0

それに応じて使用System.out.printf()およびフォーマットしてください。

于 2013-04-12T11:49:34.340 に答える
0

もし私があなたがどこにいるなら、あなたが得る数字を置く場所に文字列の配列を作成します。例えば:

try{
    BufferedReader bufferedReader = new BufferedReader(new FileReader("fileName.txt"));
    String[] numbers = new String[5];

    for(int i=0; i<5; i++){     // here you only read 5 values from a file, line by line. If the file is formatted differently you have to read them differently.
       numbers[i] = bufferedReader.readLine();
    }
}catch(IOException io){ ... }

次に、次のように、文字列の配列を 1 つの文字列行にフォーマットします。

String printedNumbers = "";
for(int i=0; i<numbers; i++){
    printNumbers+="\t";            // every table cell is seperated by a TAB
    if(numbers[i] == null){        // if the cell is empty
        printNumbers +=\t;         //    fill it with a TAB
    }else{ 
        printNumbers +=numbers[i]; // otherwise put the number in
    }
}

これは値が 5 つしかない場合は少し多いかもしれませんが、「テーブル セル」間のギャップを空白で埋める必要はありません。最後に、テーブルを印刷するには、次のようにします。

System.out.println("\t" + "MONTH |" + "\t" + "HIGH | " + "\t" + "LOW |" + "\t" + "AVERAGE |" + "\t" + "RANGE");
System.out.println("\t" + "______________________________________________");
System.out.println(printNumbers);
于 2013-04-12T11:54:34.213 に答える
0

これは、入力または空にすることができる固定数の文字列がある場合に機能します。次のように変数を用意します。

String avg = "", high = "", low = "", ...;

次に、必要なものに値を入力します。

avg = averageMonthOne(hightemp, lowtemp);
high = ...;
low = ...;

最後に、String.format メソッドを呼び出してすべてをまとめます。

String s = String.format("%s %s %s", avg, high, low);
System.out.println(s);

上記を次のように短縮できます

System.out.format("%s %s %s", avg, high, low);

http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.htmlによると、出力のフォーマットと間隔には多くのオプションがあり、それに応じて format メソッドの最初の引数を変更するだけです.

于 2013-04-12T11:55:06.510 に答える