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);      //数字为什么对不牢。怪了。
   }
}  

解决方案 »

  1.   

    对不起是因为中文的问题
    在java中  一个汉字占两个字节 而英文就是一个占一个字节
    System.out.printf("%-10s","abc");
          System.out.printf("%8d",23);
          System.out.println();
          System.out.printf("%-10s","ab");
          System.out.printf("%8d",23);     
      

  2.   

    java的格式化输出 真不知道啊??
    ("%-10s","abc");
    带的减号是干啥的额啊
      

  3.   


    目前printf支持以下格式:
              %c        单个字符
              %d        十进制整数
              %f        十进制浮点数
              %o        八进制数
              %s        字符串
              %u        无符号十进制数
              %x        十六进制数
              %%        输出百分号%
            一个格式说明可以带有几个修饰符,用来指定显示宽度,小数尾书及左对齐等:
              -         左对齐
      

  4.   

    是字体的问题(注意,是字体,不是字符集)。
    我记得Linux中有等宽字体,不知道中文字符和asc字符能不能等宽。
    windows下,应该也有这样的字体吧?