如何在Java中对齐下一行?
我不知道如何在JAVA中右对齐这些列。我试过几种方法,但都不管用。它适用于其他字符,但不适用于中文如何在Java中对齐下一行?,java,encoding,character-encoding,string-formatting,Java,Encoding,Character Encoding,String Formatting,我不知道如何在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.forma
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
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)
问题是显示字体显示的汉字与其他字符的大小不同。您可以(ab-)使用全宽空间,“\u3000”
:
虽然只需稍加努力,您就可以完成HTML输出。我使用这种方法,但我不知道它如何处理汉字:
public String padRight(String s, int n)
{
return String.format("%1$-" + n + "s", s);
}
这样称呼它:padRight(stringtobeaddedtotheright,intNumberOfPadsToTheRight)代码>谢谢大家
您是对的,代码没有问题,只有编辑器配置
在我使用eclipse编辑器的情况下,我只需更改Unicode的默认字体
冻结金额 XX
投资中金额 XX
投资中金额额 XX
请举例说明你希望输出结果如何!显然是右派。这是一个带右对齐的10个字符宽的列。尽管使用此解决方案,非中文字符的字符串将无法正确格式化。可能没有一个解决方案可以同时适用于这两种情况。
冻结金额 XX
投资中金额 XX
投资中金额额 XX