如何在 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(":");
}
这里
- a % 2 == 1 ** ==> 这个条件语句用来追加**":"
- 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.split
和 String.join
(TextUtils.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
我想在字符串中每 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(":");
}
这里
- a % 2 == 1 ** ==> 这个条件语句用来追加**":"
- 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.split
和 String.join
(TextUtils.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