私がしようとしているのは、基本的に入力に基づいてカナダの州の人口のパイプチャートを表示するプログラムを作ることです。入力の最後にすべての出力を印刷する方法
現在、私が書いたプログラムは、結果を印刷する前に1つの州とその人口をとり、その後のすべての州/地域で同じことをします。
情報を印刷するときに、個々にではなく最後にチャートを印刷したいと思っています。
私は全体の章を見直しました。私はStackexchangeサイトについても調べました。私はこれについて何も見つけることができませんが。それは不可能ですか?ここ
は私のコードです:
import java.util.Scanner;
public class printPopChart {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Please enter the number of provinces");
int pNum = in.nextInt();
for (int i = pNum; i > 0; i--){
System.out.println("Province: ");
String province = in.next();
System.out.println("Population: ");
double pPop = in.nextDouble();
double pipes = numberOfPipes(pPop);
printBar(province, pipes);
}
}
public static double numberOfPipes(double pop) {
return Math.ceil(pop/250000);
}
public static void printBar(String province, double pop) {
System.out.println("Province/Territory Population "); // 32 between Start and word Population
System.out.print(province);
spaceBetween(province);
for (int i = 0; i <= pop; i++) {
System.out.print("|");
}
System.out.println();
}
public static void spaceBetween(String province)
{
for (int i = 1; i <= (32 - province.length()); i++) {
System.out.print(" ");
}
}
}
私は一般的な方法およびJavaへの比較的新しいです(これはコースで唯一の私の5週目である)ので、私は最後まで出力を保持するかどうかはわかりません
ここProvince/Territory Population
Alberta |||||||||||||||||
British Columbia |||||||||||||||||||
Manitoba ||||||
は、もし興味があるなら、私は答えのいずれかを使用した後にやったことです::のようにようにただ一つの大きなチャートを印刷し
import java.util.Scanner;
public class printPopChart {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String temp = "";
System.out.println("Please enter the number of provinces");
int pNum = in.nextInt();
for (int i = pNum; i > 0; i--){
System.out.println("Province: ");
String province = in.next();
System.out.println("Population: ");
double pPop = in.nextDouble();
double pipes = numberOfPipes(pPop);
temp += printBar(province, pipes);
}
System.out.println("Province/Territory Population "); // 32 between Start and word Population
System.out.print(temp);
}
public static double numberOfPipes(double pop) {
return Math.ceil(pop/250000);
}
public static String printBar(String province, double pop) {
String printB = "";
printB += province;
printB += spaceBetween(province);
spaceBetween(province);
for (int i = 1; i <= pop; i++) {
printB += ("|");
}
return printB + "\n";
}
public static String spaceBetween(String province)
{
String spaceB = "";
for (int i = 1; i <= (32 - province.length()); i++) {
spaceB +=" ";
}
return spaceB;
}
}
あなたがこれを行けば代わりに 'StringBuilder'を使うことをお勧めします。 – Dayan
フォーマットのために非常に多くのSystem.out.printlnとSystem.out.printがあります。これ以外の方法はありませんか? – asdfghjklm
他にもたくさんの方法がありますが、本当に連結したい場合は 'StringBuilder'を使用して文字列を間違えないようにしてください。 – Rogue