使用String.format格式化字符串

时间:2014-07-30 09:05:19

标签: java string-formatting

我想使用010001628将此字符串01-162-8格式化为String.format。任何人都可以帮我解决这个问题吗?

到目前为止,我尝试了以下内容

String.format("%1$-2s-%1$-6s-%1$-7s", "010001628")

但我很难找到如何使用格式表达式拆分字符串。

2 个答案:

答案 0 :(得分:2)

尝试类似

的内容
String in = "010001628";
String out = String.format("%s-%s-%s", in.substring(0,2), in.substring(2,7), in.substring(7,8));

如果您不知道输入字符串的长度,可以替换最终的子字符串以取决于长度。

答案 1 :(得分:0)

这对我有用。

鉴于

String accountNumber = "010001628";

创建3个子串并将它们转换为Integer。因为格式在处理数字时比字符串更强大。

Integer a = Integer.valueOf(accountNumber.substring(0, 2));
Integer b = Integer.valueOf(accountNumber.substring(2, 8));
Integer c = Integer.valueOf(accountNumber.substring(8));

然后使用String.format

格式化整数
 String.format("%1$02d-%2$d-%3$d", a, b, c);