4

我不知道如何在 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
4

4 回答 4

3

您可以(ab-)使用tai tou,全宽空间,"\u3000"

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

尽管付出了一些努力,但您可以进行 HTML 输出。

于 2013-09-23T14:45:22.023 回答
1

Java 代码没有什么问题,只是输出的显示方式不同。

输出如下:

冻结金额       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)。

问题是显示字体没有将汉字显示为与其他字符相同的大小。

于 2013-09-23T14:25:31.880 回答
0

Thanks Guys

You are right, nothing wrong with the code only the editor configuration.

In my case I am using eclipse editor, I just change the default font for an Unicode.

冻结金额       XX
投资中金额      XX
投资中金额额     XX
于 2013-09-24T00:51:36.050 回答
0

我使用这种方法,但是我不知道它如何处理汉字:

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

像这样称呼它:padRight(StringToBePaddedToTheRight, intNumberOfPadsToTheRight);

于 2013-09-23T23:51:40.947 回答