系统:
.out.println("For test 1,");
for (int i = 0; i < testOne.length; i++)
{
System.out.print("Enter score " + (i + 1) + ": ");
testOne[i] = keyboard.nextInt();
}
System.out.println();
System.out.println("For test 2,");
for (int i = 0; i < testTwo.length; i++)
{
System.out.print("Enter score " + (i + 1) + ": ");
testTwo[i] = keyboard.nextInt();
}
for (int i = 0; i < average.length; i++)
{
average[i] = ((testOne[i] + testTwo[i]) / 2.0D);
if (Double.doubleToLongBits(average[i]) > Double.doubleToLongBits(90.0D)) {
grade[i] = 'A';
} else if (Double.doubleToLongBits(average[i]) > Double.doubleToLongBits(80.0D)) {
grade[i] = 'B';
} else if (Double.doubleToLongBits(average[i]) > Double.doubleToLongBits(70.0D)) {
grade[i] = 'C';
} else {
grade[i] = 'F';
}
}
System.out.println();
System.out.println("Test 1\tTest 2\tAverage\tGrade");
System.out.println("------\t------\t-------\t-----");
for (int i = 0; i < testOne.length; i++) {
System.out.println(testFormat.format(testOne[i]) + "\t" + testFormat.format(testTwo[i]) + "\t" + averageFormat.format(average[i]) + "\t" + grade[i]);
}
}
}
The output looks like this:
Test 1 Test 2 Average Grade
------ ------ ------- -----
089 098 093.5 A
097 085 091.0 A
094 096 095.0 A
078 073 075.5 C
What I need:
Test 1 Test 2 Average Grade
------ ------ ------- -----
089 098 093.5 A
097 085 091.0 A
094 096 095.0 A
078 073 075.5 C
我想知道的是,是否有人可以帮我解决阻止我完成该计划的格式问题?我需要将数字放入正确的列和类别,因为这是规范要求的。任何有关简单格式问题的帮助都会很棒并且非常感激。
答案 0 :(得分:0)
您可以使用填充:
String columnName = "Test 1";
int columnLength = column.length;
System.out.println(String.format("%1$-" + columnLength + "s", value));
这为您提供了列标题大小的正确填充。如果这些值是您期望的类型,这应该可以正常工作。如果行值变大,则必须注意宽度是否高于标题宽度。在这种情况下,您可能还需要增加标题之间的空间。
答案 1 :(得分:0)
您需要testFormat.format()
和averageFormat.format()
吗?
删除后:
for (int i = 0; i < testOne.length; i++) {
System.out.println(testOne[i] + "\t" + testTwo[i] + "\t" + average[i] + "\t" + grade[i]);
}
这是输出:
Test 1 Test 2 Average Grade
------ ------ ------- -----
90 56 73.0 C
95 98 96.5 A
90 98 94.0 A
97 99 98.0 A