读书人

JAVA输出中 输出宽度有关问题

发布时间: 2012-05-11 12:55:37 作者: rapoo

JAVA输出中 输出宽度问题
在JAVA中我用 System.out.format();输出一些东西,比如其中有中文与字母 例:"你好java"

String s = "你好java";
我使用的是 System.out.format("%10s",s); 这种语法,但是这种控制的是 汉字与字母都是一个宽度。

我想控制输出宽度,汉字占用2个宽度,字母占用1个宽度。请教各位一下问如何控制 ?



[解决办法]
%ms,其中m代表输出字符的个数,也就是最终打印的宽度。
如果你非要按照字节个数来加以控制的话,那就通过s.getBytes().length进行判断,到底是需要补齐空格还是截断字符串。
奉劝啊,最好别这么干(根据你自己的需要):
1.汉字在不同的编码下所占的字节个数并不一致,有些是2个字节,有的是3个字节;
2.一个汉字本生就是需要几个字节来存储的,硬要拆开了,那就什么都不是了。
[解决办法]
"你好".getBytes("utf-8").length //或者gbk
utf-8:汉字三字节
gbk:汉字两字节

读书人网 >J2SE开发

热点推荐