2013-09-23 2 views
3

JAVA에서 이러한 열을 오른쪽 정렬하는 방법을 알 수 없습니다. 나는 여러 가지 방법을 시도했지만 그들 중 누구도 일하지 않았습니다. 다른 문자에는 사용할 수 있지만 중국어에는 사용할 수 없습니다.Java에서 다음 줄을 어떻게 정렬 할 수 있습니까?

String line1="冻结金额"; 
String line2="投资中金额"; 
String line3="投资中金额额"; 
String line4="投资中金中金额"; 
System.out.format("%-10s %s %n",line1, "XX"); 
System.out.format("%-10s %s %n",line2, "XX"); 
System.out.format("%-10s %s %n",line3, "XX"); 
System.out.format("%-10s %s %n",line4, "XX"); 

이 예상되는 결과 만도 여기 제대로

자바 코드 아무 문제, 출력이 표시됩니다 유일한 방법은 없습니다
冻结金额    XX 
投资中金额   XX 
投资中金额额   XX 
投资中金中金额  XX 
+0

어떻게하면 출력이 어떨지에 대한 예를 만드십시오! – tilpner

+0

분명히 오른쪽 정렬. 오른쪽 열개가있는 10 자 너비의 열입니다. –

답변

0

표시되지 않습니다.

冻结金额  XX 
投资中金额  XX 
投资中金额额  XX 
投资中金中金额 XX 

당신이 문자의 수를 계산에 실제 존재하거나 할 경우 :

System.out.println(String.format("%-10s %s ",line1, "XX").length()); 
System.out.println(String.format("%-10s %s ",line2, "XX").length()); 
System.out.println(String.format("%-10s %s ",line3, "XX").length()); 
System.out.println(String.format("%-10s %s ",line4, "XX").length()); 

당신은 각 행이 동일한 길이를 가지고 볼 것 ((14)는 다음과 같이

출력은).

문제는 표시 글꼴이 한자를 다른 문자와 같은 크기로 표시하지 않는다는 것입니다.

3

당신은 (AB-)를 tai tou, 전체 폭 공간, "\u3000" 사용할 수 있습니다

System.out.println(String.format("%-10s %s",line1, "XX").replace(" ", "\u3000")); 

litte의 노력으로 비록을, 당신은 HTML 출력을 할 수 있습니다.

public String padRight(String s, int n) 
{ 
    return String.format("%1$-" + n + "s", s); 
} 

지금처럼 전화 : padRight(StringToBePaddedToTheRight, intNumberOfPadsToTheRight);

+0

이 해결 방법을 사용하더라도 중국어 이외의 문자가 포함 된 문자열은 올바르게 형식이 지정되지 않습니다. 아마도 둘 다 작동하는 해결책은 없을 것입니다. – Dukeling

+0

@Dukeling 좋은 지적 외에, 다른 interpunction이 있습니다. –

0

그러나 나는 그것이 한자와 함께 작동하는 방법을 몰라 코드 에디터 구성에만 문제가 있습니다.

필자는 이클립스 편집기를 사용하고 있으며 유니 코드의 기본 글꼴을 변경합니다.

冻结金额       XX 
投资中金额      XX 
投资中金额额     XX 
+0

감사합니다. 이미이 문제를 시도했지만 동일한 문제가 있습니다. – pablo

0

감사합니다 얘들 아

자네 말이 맞아, 아무것도 나는이 방법을 사용

관련 문제