【发布时间】:2015-04-30 10:48:29
【问题描述】:
我试图在不使用 JTable 或任何其他表格函数(就像文本一样)的情况下打印出表格。到目前为止,我能够打印出这些值,但似乎无法让它们正确排列。我正在尝试使用制表符,但有些值比其他值长,这使得它变得困难。任何提示将不胜感激。
package costisnoobjectfinalproject;
import java.text.NumberFormat;
import java.util.Scanner;
public class CostIsNoObjectFinalProject {
public static void main(String[] args) {
String customerName;
String carCode;
int numOfDays;
Scanner response = new Scanner(System.in);
NumberFormat money = NumberFormat.getCurrencyInstance();
String[] columnHeaders = {"Description", "Daily Fee", "Code"};
String[] cars = {"1967 Ford Mustang", "1922 Ford Model T", "2008 Lincoln Continental", "2002 Lexus", "2007 BMW", "1910 Mercer Runabout", "2009 Mercedes Benz", "1930 Cadillac V-16"};
double[] dailyFee = {65.0, 95.0, 135.0, 140.0, 160.0, 165.0, 200.0, 205.0};
String[] carType = {"A", "A", "L", "L", "L", "A", "L", "A"};
boolean[] alreadyRented = {false, false, false, false, false, false, false, false};
System.out.println("Welcome to the Antique/Luxury Car Lot! First, let's start with some information.");
System.out.println("Please enter your name: ");
customerName = response.nextLine();
System.out.println("Thank you. Which kind of car would you like to rent? (L for luxury, A for Antique): ");
carCode = response.nextLine();
System.out.println("How many days did you want to rent this car?: ");
numOfDays = response.nextInt();
for(int count = 0; count < cars.length ; count++) {
System.out.println(cars[count] + "\t\t" + money.format(dailyFee[count]) + "\t" + carType[count] + "\t" + alreadyRented[count]);
} //end for
} // end main
} // end class
这段代码给出的结果如下所示:
1967 Ford Mustang $65.00 A false
1922 Ford Model T $95.00 A false
2008 Lincoln Continental $135.00 L false
2002 Lexus $140.00 L false
2007 BMW $160.00 L false
1910 Mercer Runabout $165.00 A false
2009 Mercedes Benz $200.00 L false
1930 Cadillac V-16 $205.00 A false
【问题讨论】:
-
请记住,我仍然不确定如何打印 columnHeaders 数组以显示类似:描述每日费用代码租赁状态
-
如果您使用标签 (
\t),您应该能够对齐您的特定样本数据。 -
因为我在循环 \t 选项卡代码,由于描述的长度不同,它总是会关闭
-
另一种选择是使用
printf(),但您仍然需要知道字段的最大宽度。 -
你能更深入地了解我如何使用 printf() 吗?