2016-08-09 211 views
-3

陣列我有一個方法對齊的字符串的基於右對齊的字符串在Java

在array.I中最長的字符串數組應該右對齊所寫的以下方法中證明

確定最長字符串的長度,然後嘗試右對齊所有

字符串數組相對於最長字符串的元素。

public static void justify(String[] text) { 

    int maxlength=text[0].length(); 
    int currentlength; 
    for(int i=1;i<text.length;i++){ 
     currentlength=text[i].length(); 
     if(maxlength<currentlength){ 
      maxlength=currentlength; 
     } 
    } 

    for(int j=0;j<text.length;j++){ 
     if(text[j].length()<maxlength){ 
      text[j]=new String(String.format("%1$-" + maxlength + "s", text[j])); 

     } 
    } 

    for(String s:text){ 
     System.out.print(s+"\n"); 
    } 
} 

我的字符串數組是{「AMIT」,「JOHNNY」,「ROHAN」}。

請幫我解決這個問題。

+0

爲什麼加括號後'.length' –

+2

@馬克,因爲它是字符串長度的方法。數組長度是'text.length',字符串長度是'text [i] .length()'。 –

+0

我以爲這是C# –

回答

1

你可以改變你的循環這樣

StringBuilder sb; 
for(int j=0;j<text.length;j++){ 
    sb=new StringBuiler(); 
    //append appropriate spaces 
    for(int i=0,len=text[j].length();i<maxlength-len;i++){ 
     sb.append(" "); 
    } 
    text[j]=sb.toString()+text[j]; 
} 
+1

@fabian編輯它:) –