如何在 Android 中每 2 个字符后连接特殊符号作为冒号

How to concatenate Special symbol as colon after every 2 character in Android

我想在字符串中每 2 个字符后连接或附加特殊字符作为冒号 :

例如: 原字符串如下:

String abc =AABBCCDDEEFF;

连接或附加冒号后如下:

  String abc =AA:BB:CC:DD:EE:FF;

所以我的问题是我们如何在 android 中实现这一目标。

提前致谢。

使用 StringBuilder:

StringBuilder sb = new StringBuilder(abc.length() * 3 / 2);
String delim = "";
for (int i = 0; i < abc.length(); i += 2) {
  sb.append(delim);
  sb.append(abc, i, Math.min(i + 2, abc.length()));
  delim = ":";
}
String newAbc = sb.toString();

如果你不想使用 Math class 函数,你可以试试下面的代码。

StringBuilder stringBuilder = new StringBuilder();
    for (int a =0; a < abc.length(); a++) {
        stringBuilder.append(abc.charAt(a));
        if (a % 2 == 1 && a < abc.length() -1)
            stringBuilder.append(":");
    }

这里

  1. a % 2 == 1 ** ==> 这个条件语句用来追加**":"
  2. a < abc.length() -1 ==> 这个条件语句用来不加":"

在最后一个条目中。希望这是有道理的。如果您发现任何问题,请告诉我。

这是 Kotlin 的方式。没有 StringBuilder

val newString: String = abc.toCharArray().mapIndexed { index, c ->
            if (index % 2 == 1 && index < abc.length - 1) {
                "$c:"
            } else {
                c
            }
        }.joinToString("")

您可以结合使用 String.splitString.joinTextUtils.join(":", someList) 对应 android),首先在每个第二个字符处拆分字符串,然后使用您想要的分隔符将其连接起来。示例:

String abc = "AABBCCDDEEFF";
String def = String.join(":", abc.split("(?<=\G.{2})"));
System.out.println(def);
//AA:BB:CC:DD:EE:FF

在 Kotlin 中使用 chunked(2)String 每 2 个字符拆分一次并重新加入 joinToString(":"):

val str = "AABBCCDDEEFF"
val newstr = str.chunked(2).joinToString(":")
println(newstr)

将打印

AA:BB:CC:DD:EE:FF