我试图弄清楚 -
INPUT: String data = "506313B5EA3E";
OUTPUT: String data = "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
,对每个两个字符组重复此操作。记住:除了最后一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)