我需要您的帮助才能将12345678
之类的字符串转换为1234.56.78
[FOUR DIGITS].[TWO DIGITS].[TWO DIGITS]
我的代码:
String s1 = "12345678";
s1 = s1.replaceAll("(\\d{4})(\\d+)", "$1.$2").replaceAll("(\\d{2})(\\d+)", "$1.$2");
System.out.println(s1);
但结果是12.34.56.78
答案 0 :(得分:3)
如果您确定您始终使用相同的格式输入,那么您只需使用StringBuilder
并执行以下操作:
String input = "12345678";
String output = new StringBuilder().append(input.substring(0, 4))
.append(".").append(input.substring(4, 6)).append(".")
.append(input.substring(6)).toString();
System.out.println(output);
此代码通过将点附加到指定位置的子字符串来创建新的String。
<强>输出:强>
1234.56.78
答案 1 :(得分:3)
使用单个replaceAll()
方法更新正则表达式,否则第二个replaceAll()
调用将替换,包括前四位数。
{{1}}
答案 2 :(得分:2)
这会在每对字符之后加上点,除了第一对:
str = str.replaceAll("(^....)|(..)", "$1$2.");
这适用于任何长度的字符串,包括奇数长度。
例如
"1234567890123" --> "1234.56.78.90.12.3"