我想在3个字符后加一个冒号。所以我想打印“ 123:456:789:0”。我怎样才能做到这一点。现在它的输出方式是:“ 123:4567890”
String s = "1234567890";
System.out.println(java.util.Arrays.toString(s.split("(?<=\\G.{3})")));
答案 0 :(得分:1)
您好尝试下面的正则表达式,
String s = "1234567890";
s = s.replaceAll("(.{3})", "$1:");
System.out.println(s);
更新: 更新了答案,如果您不想在末尾插入“:”,
String s = "123456789";
s = s.replaceAll("...(?!$)", "$0:");
System.out.println(s);
“ ...”是长度。您可以根据需要更改。因此,如果您希望像这样将84:F3:EB:34:75:6B作为84F3EB34756B的输出,请使用
s = s.replaceAll("..(?!$)", "$0:");
答案 1 :(得分:0)
这是一种蛮力的处事方法,可能效率很低。它将起作用
class Main {
public static void main(String[] args) {
String s = "123456789";
String result="";
for(int i=1; i < s.length()+1; i++)
{
result += s.charAt(i-1);
if(i%3 == 0 && i!=s.length())
{
result+=":";
}
}
System.out.println(result);
}
}
答案 2 :(得分:0)
没有正则表达式的解决方案。
fun String.putDots(step: Int = 3, divider: String = ":"): String {
if (isEmpty() || length <= step) {
return this
}
val builder = StringBuilder()
var startIndex = 0
for (i in step..lastIndex step step) {
builder.append(substring(startIndex, i))
builder.append(divider)
startIndex = i
}
builder.append(substring(startIndex, length))
return builder.toString()
}