2012-09-28 75 views
1

爲什麼是這樣一個艱鉅的任務離開時,右對齊是如此的簡單使用Formatter等找到一個字符串函數來中心對齊我的字符串中心對齊字符串

我想格式化我的輸出文件

       Nodes Expanded 
         Euclidean Manhattan Chessboard 
Input1      2   2    2 
Input2      6   6    6 
Input3      -   -    - 

僞代碼:

String line1="Nodes Expanded"; 
    line1.center(50); //length of string =50 

我可以使用的PrintWriter的字符串即可。

我需要爲此構建一個邏輯還是我不知道某些內置函數?

+0

相關的問題 - [?如何使用的String.format居中字符串(http://stackoverflow.com/questions/8154366/how-to-center -a-字符串使用字符串格式) –

回答

3

這裏的居中文本的一種方法:

public String center (String s, int length) { 
    if (s.length() > length) { 
     return s.substring(0, length); 
    } else if (s.length() == length) { 
     return s; 
    } else { 
     int leftPadding = (length - s.length())/2; 
     StringBuilder leftBuilder = new StringBuilder(); 
     for (int i = 0; i < leftPadding; i++) { 
      leftBuilder.append(" "); 
     } 

     int rightPadding = length - s.length() - leftPadding; 
     StringBuilder rightBuilder = new StringBuilder(); 
     for (int i = 0; i < rightPadding; i++) 
      rightBuilder.append(" "); 

     return leftBuilder.toString() + s 
       + rightBuilder.toString(); 
    } 
}