Java中如何控制右对齐输出?
Java中控制右对齐输出的方法有以下:
1、你可以把数字转换成字符串,用 String.format("% 4d", number1); 可以补充空格。有个更好的方法用printf();这个给C中的方法差不多,很方便例如这样:System.out.printf("%-10s","abc"); //输出10列,左对齐(-号表示左对齐);System.out.printf("%8d",23); //输出8列, 右对齐。
2、你可以把数字转换成字符串,用 String.format("% 4d", number1); 可以补充空格,这样行
有个更好的方法用printf();这个给C中的方法差不多,很方便例如这样:System.out.printf("%-10s","abc");System.out.printf("%8d",23);System.out.println();System.out.printf("%-10s","ab");System.out.printf("%8d",23); 就可以了,这只是个例子,具体情况怎么实现看你自己。
%4.xx 使输出右对齐,不足4位用空格;
%-10s 使字符串左对齐输出,不足10位,后加空格;
%10s 使字符串右对齐输出,不足10位,前加空格。
输出的对齐格式:
printf("%4.d\n",1);
printf("%4.d\n%4.d\n%4.d\n",3,12,1123);
printf("%-10s%d\n",s,12);
%4.xx 使输出右对齐;不足4位用空格;
%.4xx 使小数保留4位小数,若该数为整形,不足四位前填0;多余4位原样输出;
%-4.xx 使输出的数左对齐;
%-10s 使字符串左对齐输出,不足10位,后加空格;
%10s 使字符串右对齐输出,不足10位,前加空格;
%10.s 不输出字符,只输出10位空格;
%.10s 字符原样输出;
举例:
#include<stdio.h>
int main()
{
printf("%4.d%4.d%4.d\n",1,34,12344);
printf("%4.d\n%4.d\n%4.d\n",3,12,11123); //右对齐;不足四位,前加空格;
printf("%.4d\n%.4d\n%.4f\n%.4f\n",23,2342,2.3,343.32); //对小数,保留四位小数;对整数,不足四位,前加零;
printf("%-4.d%-4d\n",1,23423); //左对齐;不足四位,后加空格;
printf("%-10s%-10s\n","asdsd","asdsfdgfhgh"); //不足十位,后加空格;
printf("%10s%10s\n","sdsfsf","sdsfdsgsgf"); //不足十位,前加空格;
printf("%10.sq\n","asdaff"); //输出十个空格;
printf("%.10s%.10s\n","asdad","sdsfdsgfgg"); //字符串原样输出;
}
int a; for(int i=0;i<=999;i++){
if(a/10<1){ for(int q=0;q<=10;q++){system.out.println(" 2空格 "+a);}}
else if(1<=a/10<10){for(int b=0;b<=90;b++){System.out.println("1空格"+a);}}
else if(10<=a<100){for(int c=0;c<=901;c++){System.out.println(a);}}
}else{
break;
}
System.out.printf("%10s", i);
}
%10s 是表示对应的空格10格
i 是将要输出的
看下这是不是你所要的
System.out.println("1\t2\t3");
试试看\t制表符。
谢谢啊,叫了我这么好的方法。不过不是右对齐输出,而是像制表一样上下对齐!谢谢!