你可以這樣做:
System.out.println(inputString.replaceFirst("(.{3})(.{0,3})", "$1 $2 "));
說明:
就像$0
是整個匹配的字符串一樣,所以$1
和$2
分別是括號中的第一個和第二個匹配的東西。
我修改了{3}
到{0,3}
所以串6個字符或更短也工作(它不然而添加尾隨空格當字符串是4和6之間的字符,其可以與.trim()
(其可能具有不想要的其他效果)中除去或更復雜的東西)。
希望其他人不需要解釋,因爲它與您的代碼非常相似,但可以隨時詢問您是否確定。 Java regex reference。
例子:
System.out.println("123456789".replaceFirst("(.{3})(.{0,3})", "$1 $2 "));
System.out.println("12".replaceFirst("(.{3})(.{0,3})", "$1 $2 "));
System.out.println("12345".replaceFirst("(.{3})(.{0,3})", "$1 $2 "));
打印:
123 456 789
12
123 45
'的String.format( 「%s%s%S」,S。子串(0,3),s.substring(3,6),s.substring(6));' – DannyMo