2017-05-02 3 views
0

他の整数や文字列とともに左詰めのパーセント記号で数字を表示しようとしています。そのために私はjavaで文字列形式を使用しています。私はほとんどそれを持っていましたが、10桁が100桁に移動するとスタックしました。たとえば:左詰め番号とjavaのパーセント値を合わせて

public class Test1 { 

public static void main(String args[]){ 
int per1= 100,g1=3; 
String name1="AAA PPPP"; 
int per2= 55,g2=4; 
String name2="BBB QQQ"; 
int per3= 24,g3=7; 
String name3="CCC RRRRR"; 

System.out.println(String.format("%-3d%% | %02d strike | %s",per1,g1,name1)); 
System.out.println(String.format("%-3d%% | %02d strike | %s",per2,g2,name2)); 
System.out.println(String.format("%-3d%% | %02d strike | %s",per3,g3,name3)); 

} 

} 

現在、私が取得mが出力はこの

100% | 03 strike | AAA PPPP 
55 % | 04 strike | BBB QQQ 
24 % | 07 strike | CCC RRRRR 

ですが、期待、私はひどく今立ち往生mは

100% | 03 strike | AAA PPPP 
55% | 04 strike | BBB QQQ 
24% | 07 strike | CCC RRRRR 

です。私は非常にトリッキーだが、それでもまだ答えが得難いと思う。人々を助けてください。

+0

http://stackoverflow.com/questions/6080390/java-string-align-to-right –

答えて

0

それは行き過ぎすることができますが、それは動作します:

public class Test1 { 

    public static void main(String args[]){ 

     int per1= 100, g1=3; 

     String name1="AAA PPPP"; 

     int per2= 55, g2=4; 

     String name2="BBB QQQ"; 

     int per3= 24, g3=7; 

     String name3="CCC RRRRR"; 

     String space = ""; 

     System.out.println(String.format("%d%%%-" + (4 - String.valueOf(per1).length()) + "s| %02d strike | %s", per1, space, g1, name1)); 
     System.out.println(String.format("%d%%%-" + (4 - String.valueOf(per2).length()) + "s| %02d strike | %s", per2, space, g2, name2)); 
     System.out.println(String.format("%d%%%-" + (4 - String.valueOf(per3).length()) + "s| %02d strike | %s", per3, space, g3, name3)); 
    } 
} 

出力:

100% | 03 strike | AAA PPPP 
55% | 04 strike | BBB QQQ 
24% | 07 strike | CCC RRRRR 
+0

それはうまくいった。 :) –

関連する問題