Java 我需要格式化一个数组中的字符串,这样它才合适

Java 我需要格式化一个数组中的字符串,这样它才合适,java,string,split,formatting,string-formatting,Java,String,Split,Formatting,String Formatting,我需要从一个数组中打印,这样它就有了列,但即使在在线查看之后,我也无法理解这一点。我有以下代码: public void printDirectory() { System.out.println("Surname " + "Initial " + "Extension"); for (int i = 0; i < directory.length; i++) { System.out.println(directory[i])

我需要从一个数组中打印,这样它就有了列,但即使在在线查看之后,我也无法理解这一点。我有以下代码:

public void printDirectory() {
        System.out.println("Surname " + "Initial    " + "Extension");
        for (int i = 0; i < directory.length; i++) {
            System.out.println(directory[i]);

        }
    }

    public static void main(String[] args) {
        ArrayDirectory r = new ArrayDirectory();
        r.inputEntries();
        r.printDirectory();

    }
public void printDirectory(){
System.out.println(“姓氏”+“首字母”+“扩展名”);
for(int i=0;i
该程序从一个文本文件输入数据,其中有姓氏、首字母和电话分机。例如,我有“Smith J 0583”(数组中会有许多不同长度的文件),当我打印出来时,会得到格式非常糟糕的输出。我知道可以用Java格式化,但我不知道如何使用它,因为字符串都在一个地方


谢谢您的帮助。

您可以使用
System.out.format
执行此操作

使用Java格式,可以指定字符串的长度。因此,您可以将每列设置为字符长度,以使其格式良好。唯一需要注意的是,您需要知道姓氏的最大长度。在这个例子中,我猜是12

String formatString = "%12s %7s %9s\n";
System.out.format(formatString, "Surname", "Initial", "Extension");
System.out.format(formatString, (Object[]) directory[i].split(" "));

formatString的作用是指定3个字符串,一个长度为12个字符,然后是7个字符,然后是9个字符,所有字符串都用空格分隔。然后,它以一个新行结束。当您使用此选项输入三个字符串时,它们的长度将始终相同,只要没有一个字符串超过此长度,这将形成良好的格式。

您好,谢谢您的回答。我现在得到了这个错误,但我不太确定这意味着什么?“String[]类型的参数应显式转换为Object[],以便从PrintStream类型调用varargs方法格式(String,Object…)。也可以将其转换为Object,以便进行varargs调用”Hmmm。请尝试将参数转换为对象数组。System.out.format(formatString,(Object[])目录[i].split(“”);非常感谢。经过一段时间的摆弄,它现在可以工作了!非常感谢。