将int转换为字符串时对齐十进制

时间:2012-08-10 15:58:21

标签: java string alignment int decimal

据我所知,在Java中你可以使用printf,例如

System.out.printf("check1 =  " + "%11.5f  percent\n", 2.0564);
System.out.printf("cat =     " + "%11.5f  percent\n", 1232.05);

但如果说你有

int temp1 = 1.02
int temp2 = 12345.01234

并且您希望将其转换为具有小数对齐的String。所以你会有

a = "DMC       1.02    percent"
b = "POLY  12345.01234 percent"

有没有办法做到这一点,除了有一堆if语句检查长度?

2 个答案:

答案 0 :(得分:3)

使用:

String.format("%-15s%11.5f percent", "DMC", 1.02);
String.format("%-15s%11.5f percent", "POLY", 12345.01234);

它产生:

DMC           1.02000 percent
POLY      12345.01234 percent

您可能需要增加%-15s的值才能正确拟合非常大的数字。

答案 1 :(得分:0)

您可以使用字符串操作。

String text = "     " + value + "     ";
text = text.substring(text.indexOf('.') - 5, text.indexOf('.') + 5);