我想使用010001628
将此字符串01-162-8
格式化为String.format
。任何人都可以帮我解决这个问题吗?
到目前为止,我尝试了以下内容
String.format("%1$-2s-%1$-6s-%1$-7s", "010001628")
但我很难找到如何使用格式表达式拆分字符串。
答案 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);