java - 插入冒号的方法是什么(:) after every two characters in a string?

标签 java string split

我正在尝试弄清楚 -

输入: 字符串数据 = "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/

相关文章:

java - 意外字符 ('='(代码 61)): while parsing JsonString

c# - 分割字符串“a_b_c_d.1.2.3.4”的更好方法

javascript - 如何检查一个字符串的所有字符是否都存在于另一个字符串中?

c++ - How to compare "4A4B4C"(string shows hex value) 实际字符串是 "JKL"

java - Retrofit 2 - 如何在没有 Call 对象的情况下发出请求

javascript - 我正在尝试获取适用于 iOS 的 Chromium,但卡在了 fetch iOS 命令中

c++ - 分割函数c++

javascript - 如何拆分包含不同符号的字符串?

java - 文件读取器的用户输入

java - 在 Java 中使用多个分隔符分割字符串时出现不需要的元素