我想在3个字符后面加一个冒号。所以"123:456:789:0“我想打印出来。我该怎么做呢。它现在的输出方式:"123:4567890“
String s = "1234567890";
System.out.println(java.util.Arrays.toString(s.split("(?<=\\G.{3})")));发布于 2019-08-01 23:33:15
您好,尝试下面的正则表达式,
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:");发布于 2019-08-01 23:33:24
这是一种粗暴的做事方法,效率可能非常低。不过,它还是会工作的
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);
}
}发布于 2019-08-01 23:58:34
没有正则表达式的解决方案。
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()
}https://stackoverflow.com/questions/57312301
复制相似问题