[英]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.