【发布时间】:2016-10-03 16:53:47
【问题描述】:
我的文本中有一些特殊字符,例如:
Nur bei guter \U25berwachung k\o25rperliche Belastung pr\u25fen und Sie entsprechend
我有一张将这些映射到德国变音符号的表格;编码为十六进制 unicode 字母。我正在尝试在文本中替换它们,但我失败了......
对于 \U25,所需的输出是 Ü,对于 \025 是 ö,对于 \u25 是 ü。
我尝试了很多东西,例如
Pattern p = Pattern.compile("(\\\\[0-9A-Za-z]{3})", Pattern.MULTILINE);
Matcher matcher = p.matcher(v);
String replacement = "00FB";
while (matcher.find()) {
String match = matcher.group();
int hexToInt = Integer.parseInt(replacement, 16);
v = matcher.replaceFirst("" + hexToInt);
}
使用最后一行v = matcher.replaceFirst(match, "Ü"); 会使我的程序永远挂起。我也试过str.replace()的方法,无济于事……
部分人物:
【问题讨论】:
-
您的
replaceFirst调用不会按原样编译... -
对不起,谢谢@Mena,那是来自 str.replace....
-
没有问题。您只需要替换这 3 个实体吗?
-
不,有几千个。这是大量的数据...@Mena
-
嗯。我一般不擅长编码,但我不确定这里的转换规则是什么。基本上是
[vowel] + [25 for uhmlaut]?还有其他类型的变音符号等。你需要转换吗?