我正在尝试弄清楚 -
输入: 字符串数据 = "506313B5EA3E";
输出: 字符串数据 = "50:63:13:B5:EA:3E";
我尝试使用-
java.util.Arrays.toString(data.split("(?<=\\G..)"))
但输出是:[50, 6313B5EA3E]
最佳答案
您可以使用正则表达式:
String input = "0123456789abcdef";
String output = input.replaceAll("..(?!$)", "$0:")
// output = "01:23:45:67:89:ab:cd:ef"
它是如何工作的?
..
恰好匹配两个字符。(?!$)
确保这两个字符不在input
的末尾(?!
是负向前瞻,$
代表结束)。- 匹配的两个字符现在将被它们本身(
$0
表示整个匹配字符串)和我们想要的冒号替换。 - 由于我们使用的是
replaceALL
,因此每个两个字符组都会重复此操作。请记住:除了最后一个。
关于java - 插入冒号的方法是什么(:) after every two characters in a string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23404475/