簡體   English   中英

Java字符串格式

[英]Java String format

我試圖創建一個與JList一起使用的字符串數組,我的Book類中有一個對象數組,其中包含作者名稱,Tittle等...但是當我使用string.format並將其發送給我的JList時不會像我使用system.out.format時那樣對齊。

碼:

final static String FORMAT = "|%1$-25s|%2$-25s|$%3$-10.2f|%4$-15s|%5$-13s|\n";

static String[] createStringList(Book[] dataBase)
{
    String[] list = new String[dataBase.length];

    for (int i = 0; i < dataBase.length; i++)
    {
        list[i] = String.format(FORMAT, dataBase[i].getTittle(), dataBase[i].getAuthor(),
                                        dataBase[i].getBookPrice(), dataBase[i].getNumberInStock(),
                                        dataBase[i].getISBNNumber());
    }
    return list;
}

static void printout(Book[] dataBase)
{
    System.out.println("         Tittle" + "\t" + "                    Author" + "\t" + "        Price" + "\t" + "Number In Stock" + "\t" + "  ISBN Number");
    System.out.println("_____________________________________________________________________________________________");
    for (int i = 0; i < dataBase.length; i++)
    {
            System.out.format(FORMAT, dataBase[i].getTittle(), dataBase[i].getAuthor(),
                                      dataBase[i].getBookPrice(), dataBase[i].getNumberInStock(),
                                      dataBase[i].getISBNNumber());
    }
}

結果截圖: 在此處輸入圖片說明

如您所見,print方法可以很好地對齊它,但是當我嘗試將其發送到JList時,即使我使用的是相同的代碼,它也會弄亂。 我將如何調整它? 我嘗試過使用String格式的值=“ |%1 $ -25s |%2 $ -25s | $%3 $ -10.2f |%4 $ -15s |%5 $ -13s | \\ n”; 但這似乎沒有幫助。

在JList中弄亂對齊的原因是因為它(希望)使用了比例字體。 您可以使用等距的一個,但是這樣很難看。 您需要使用JList中的列(即表控件)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM