首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中对齐下一行?

如何在Java中对齐下一行?
EN

Stack Overflow用户
提问于 2013-09-23 22:18:31
回答 4查看 776关注 0票数 4

我不知道如何在JAVA中右对齐这些列。我尝试了几种方法,但都不起作用。它适用于其他字符,但不适用于中文。

代码语言:javascript
复制
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" );

这是预期的结果,但即使在这里也不能正确显示

代码语言:javascript
复制
冻结金额             XX 
投资中金额           XX
投资中金额额         XX
投资中金中金额       XX
EN

回答 4

Stack Overflow用户

发布于 2013-09-23 22:45:22

您可以(ab-)使用、全角空格、"\u3000"

代码语言:javascript
复制
System.out.println(String.format("%-10s %s",line1, "XX").replace(" ", "\u3000"));

尽管只需很少的工作,您就可以进行HTML输出。

票数 3
EN

Stack Overflow用户

发布于 2013-09-23 22:25:32

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

输出如下:

代码语言:javascript
复制
冻结金额       XX 
投资中金额      XX 
投资中金额额     XX 
投资中金中金额    XX 

如果您实际上要计算字符数,或者执行以下操作:

代码语言:javascript
复制
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)。

问题是,显示字体显示的中文字符与其他字符的大小不同。

票数 1
EN

Stack Overflow用户

发布于 2013-09-24 07:51:41

我使用这个方法,但是我不知道它如何处理中文字符:

代码语言:javascript
复制
public String padRight(String s, int n) 
{
    return String.format("%1$-" + n + "s", s);  
}

这样叫它:padRight(StringToBePaddedToTheRight, intNumberOfPadsToTheRight);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18961628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档