printf无法右对齐,这是为什么?

孤尽JavaSea 2009-10-18 01:41:18
package myString;
public class Align {
public static void main(String args[]) {
System.out.printf("%-10s","一二三");
System.out.printf("%8d",23);
System.out.println();
System.out.printf("%-10s","一二");
System.out.printf("%8d",23); //数字为什么对不牢。怪了。
}
}

...全文
354 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bayougeng 2009-10-18
  • 打赏
  • 举报
回复
是字体的问题(注意,是字体,不是字符集)。
我记得Linux中有等宽字体,不知道中文字符和asc字符能不能等宽。
windows下,应该也有这样的字体吧?
antlovestudy 2009-10-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 java_gannbare 的回复:]
Java codepackage myString;publicclass Align {publicstaticvoid main(String args[]) {
System.out.printf("%-10s","一二三");
System.out.printf("%8d",23);
System.out.println();
System.out.printf("%-10s","一二");
System.out.printf("%8d",23);//数字为什么对不牢。怪了。 }
}
[/Quote]
zl3450341 2009-10-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lz12366007 的回复:]
java的格式化输出 真不知道啊??
("%-10s","abc");
带的减号是干啥的额啊
[/Quote]

目前printf支持以下格式:
%c 单个字符
%d 十进制整数
%f 十进制浮点数
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
%% 输出百分号%
一个格式说明可以带有几个修饰符,用来指定显示宽度,小数尾书及左对齐等:
- 左对齐
舷Kelvin 2009-10-18
  • 打赏
  • 举报
回复
这个我也试过,确实对不齐。
lz12366007 2009-10-18
  • 打赏
  • 举报
回复
java的格式化输出 真不知道啊??
("%-10s","abc");
带的减号是干啥的额啊
tanwan 2009-10-18
  • 打赏
  • 举报
回复
可以那样输出格式?
swandragon 2009-10-18
  • 打赏
  • 举报
回复
对不起是因为中文的问题
在java中 一个汉字占两个字节 而英文就是一个占一个字节


System.out.printf("%-10s","abc");
System.out.printf("%8d",23);
System.out.println();
System.out.printf("%-10s","ab");
System.out.printf("%8d",23);

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧