gpt4 book ai didi

java - 格式化具有固定宽度列的文本表格

转载 作者:行者123 更新时间:2023-11-29 07:48:41 25 4
gpt4 key购买 nike

我有一个包含一些商店信息的文件,我想将它排序到另一个文件中,例如表格(在 Excel 中)。

文件:

001     Tablets                        5      3
002 pens 4 1
005 Computeres 3 0
003 Bages 2 1
004 USB 4 0

我写这段代码:

import java.util.*;
import java.io.*;

public class Sort {
public static void main(String [] args) throws IOException {
FileInputStream fileinput = new FileInputStream("input.txt");
FileOutputStream fileoutput = new FileOutputStream("output.txt");
Scanner infile = new Scanner(fileinput);
PrintWriter pw = new PrintWriter(fileoutput);
int id, quantity, soldQuantity;
String title;
pw.println("ID\tTitle\t\t\tQuantity\tSoldQuantity");
pw.println("");
while(infile.hasNext()){
id = infile.nextInt();
title = infile.next();
quantity = infile.nextInt();
soldQuantity = infile.nextInt();
pw.printf("%6d\t%s\t\t%d\t%d%n", id , title, quantity, soldQuantity);
}
infile.close();
pw.close();
}
}

我希望它看起来像这样:

Code(ID)    Name            Quantity    SoldQuantity

001 Tablets 5 3
002 pens 4 1
005 Computeres 3 0
003 Bages 2 1
004 USB 4 0

我的问题是数量和售出数量的数字不太吻合。看起来像这样:

Code(ID)    Name            Quantity    SoldQuantity

001 Tablets 5 3
002 pens 4 1
005 Computers 3 0
003 Bags 2 1
004 USB 4 0

如果有比“computers”大的名称,名称大小不同时会出现问题,我该如何处理?

谢谢

最佳答案

除了使用 \t 作为间距,还可以为字符串使用宽度修饰符:

pw.printf("%6d\t%30s%d\t%d%n", id, title, quantity, soldQuantity);

如果你真的想确保无论最长的 title 有多长,一切都对齐,你可以找到最长的长度,加一个,然后使用它粘贴格式字符串。

关于java - 格式化具有固定宽度列的文本表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23165283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com