偶然在写代码中,遇到String字符串里面存在非常多的16进制数据,如下图,需要将红框中的十六进制数据转换为对应的汉字,方便阅读。
采用的逻辑思路为,正则表达式匹配出所有的十六进制数据,然后进行转换为汉字,转换成功以后,用汉字替换相应的十六进制数据,然后再转换为String字符串,具体代码见下图
/**
* utf-8十六进制编码为汉字
*
*/
public static String hexToString(String str) {
Pattern pattern = Pattern.compile("(x[0-9A-Fa-f]{2})+");
Matcher matcher = pattern.matcher(str);
Map result = new TreeMap<>();
List listKey = new LinkedList<>();
while (matcher.find()) {
String group = matcher.group(0);
String groupReplace = group.replaceAll("x