簡體   English   中英

如何證明java中字符數組的文本?

[英]How to justify text for a character array in java?

我正試圖返回一個已經合理的字符數組左,右和中心。

假設每行最多6個字符。 合理案文中的各項產出將是。

Left:
How is
your
day

Center:
How is
 your
 day

Right:
How is
  your
   day

通過使用for循環,我在行超過數組內的最大限制6之前添加'\\ n'。

Example[3] = '\n';

我如何能夠返回數組,以便以合理的格式輸出?

我做了一些搜索,我能找到的就是如何證明String的合理性。

抱歉可怕的格式化。 不知道如何格式化這個。

這是一個非常基本的例子......

它基本上用空格填充String值以提供對齊...

public class Align {

    public static void main(String[] args) {
        String values[] = new String[]{
            "How is",
            "your",
            "day"};

        int maxLength = 0;
        for (String value : values) {
            maxLength = Math.max(value.length(), maxLength);
        }

        System.out.println("Left:");
        for (String value : values) {
            System.out.println("[" + leftPad(value, maxLength) + "]");
        }
        System.out.println("\nRight:");
        for (String value : values) {
            System.out.println("[" + rightPad(value, maxLength) + "]");
        }
        System.out.println("\nCenter:");
        for (String value : values) {
            System.out.println("[" + centerPad(value, maxLength) + "]");
        }
    }

    public static String leftPad(String sValue, int iMinLength) {

        StringBuilder sb = new StringBuilder(iMinLength);
        sb.append(sValue);

        while (sb.length() < iMinLength) {

            sb.append(" ");

        }

        return sb.toString();

    }

    public static String rightPad(String sValue, int iMinLength) {

        StringBuilder sb = new StringBuilder(iMinLength);
        sb.append(sValue);

        while (sb.length() < iMinLength) {

            sb.insert(0, " ");

        }

        return sb.toString();

    }

    public static String centerPad(String sValue, int iMinLength) {

        if (sValue.length() < iMinLength) {

            int length = sValue.length();
            int left = (iMinLength - sValue.length()) / 2;
            int right = iMinLength - sValue.length() - left;

            StringBuilder sb = new StringBuilder(sValue);
            for (int index = 0; index < left; index++) {
                sb.insert(0, " ");
            }
            for (int index = 0; index < right; index++) {
                sb.append(" ");
            }

            sValue = sb.toString();

        }

        return sValue;

    }
}

哪個只是輸出......

Left:
[How is]
[your  ]
[day   ]

Right:
[How is]
[  your]
[   day]

Center:
[How is]
[ your ]
[ day  ]

Commons StringUtils有各種方法來證明各種格式的字符串。 喜歡,左撇子,右撇子,中心墊

暫無
暫無

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

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