2013-05-30 18 views
0

我試圖返回一個已經證明的字符數組的左側,右側和中間。如何證明在java中的字符數組的文本?

說每行最多6個字符。合理的文本中的各自輸出將是。

Left: 
How is 
your 
day 

Center: 
How is 
your 
day 

Right: 
How is 
    your 
    day 

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

Example[3] = '\n'; 

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

我做了一些搜索,所有我能找到的是如何證明一個字符串。

對不起,可怕的格式。不知道如何格式化好。

+1

我不確定它是否是個好主意,但是您是否嘗試使用空格填充? –

+0

像檢查剩餘空間的數量,只是用空格添加其餘空間?如果我以中心爲中心,那會不會變得混亂? – user2435044

回答

2

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

它基本上與空間,以提供對準焊墊的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 ] 
0

Commons StringUtils有各種方法來對齊各種格式的字符串。 like,leftpad,rightpad,centerpad

相關問題