arraylist Java的对齐输出
我是Java新手,我只想问一些关于如何使用align格式从arraylist输出数据的问题,例如:arraylist Java的对齐输出,java,arraylist,output,Java,Arraylist,Output,我是Java新手,我只想问一些关于如何使用align格式从arraylist输出数据的问题,例如: CustomerNo Name PhoneNo Status 1 Ali 0177788901 Normal 我尝试了很多方法,比如“/t”: for(int i=0;i如评论中所述,您应该真正将每个客户存储在一个中,无论如何,根据您当前的尝试,这里有一个脆弱的解决方案: impo
CustomerNo Name PhoneNo Status
1 Ali 0177788901 Normal
我尝试了很多方法,比如“/t”:
for(int i=0;i如评论中所述,您应该真正将每个客户存储在一个中,无论如何,根据您当前的尝试,这里有一个脆弱的解决方案:
import java.util.List;
public class Main {
private static final String COLUMN_FORMAT = "%15s";
public static void main(String[] args) {
List<String> columnNames = List.of("CustomerNo", "Name", "PhoneNo", "Status");
List<String> customerData = List.of("1", "Ali", "0177788901", "Normal",
"2", "Bill", "0277788901", "Good");
for (String column : columnNames) {
System.out.printf(COLUMN_FORMAT, column);
}
System.out.println();
for (int i = 0; i < customerData.size(); i += 4) {
for (int j = i; j < i + 4; j++) {
System.out.printf(COLUMN_FORMAT, customerData.get(j));
}
System.out.println();
}
}
}
您还应该在System.out.print(cusData.get(i)+“\t”)中使用printf;String类的format方法为您提供了一种不同的方式来构造列对齐的输出行。%20s右对齐字符串,而%20s左对齐字符串。看起来您将数据存储为一包项,而不是一个适当的类。这使您的任务变得不必要的困难。不确定为什么要这样做t将phoneNumber
列与CustomerNo
和Name
列进行不同的对齐方式?@chrylis谨慎优化-如何将数据存储为适当的类?如果需要,我可以将数据发送给您。
for(int i = 0; i <= formatCus.size()-1; i++){
System.out.printf("%15d",formatCus.get(i));
}
System.out.println("");
for(int i = 0; i <= cusData.size()-1; i++){
System.out.printf("%15d",cusData.get(i));
}
import java.util.List;
public class Main {
private static final String COLUMN_FORMAT = "%15s";
public static void main(String[] args) {
List<String> columnNames = List.of("CustomerNo", "Name", "PhoneNo", "Status");
List<String> customerData = List.of("1", "Ali", "0177788901", "Normal",
"2", "Bill", "0277788901", "Good");
for (String column : columnNames) {
System.out.printf(COLUMN_FORMAT, column);
}
System.out.println();
for (int i = 0; i < customerData.size(); i += 4) {
for (int j = i; j < i + 4; j++) {
System.out.printf(COLUMN_FORMAT, customerData.get(j));
}
System.out.println();
}
}
}
CustomerNo Name PhoneNo Status
1 Ali 0177788901 Normal
2 Bill 0277788901 Good