2017-05-02 9 views
0

다른 정수 및 문자열과 함께 왼쪽에 백분율 기호가있는 숫자를 표시하려고합니다. 이를 위해 자바에서 문자열 형식을 사용하고 있습니다. 나는 거의 그것을 얻었지만 10 자리가 100 자리로 움직일 때 붙어 있었다. 예를 들어 :자바에서 백분율 %와 함께 왼쪽 정렬 된 숫자

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)); 

} 

} 

현재 내가 받고있어 출력이

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

하지만 예상 내가 심하게 지금 붙어있어

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

잘 작동했다. :) –