我需要编写一个函数来将一些“特殊字符”翻译为“非特殊字符”。我的发送系统支持整个 UTF-8 字符集,但我的目标系统只有一小部分可用。 因此我有一个映射表来翻译这些字符。该映射表是一个简单的文本文件,包含例如这样的条目:
D̂;D
第一个字符是我的“特殊字符”,应该用分号后面的字符替换。
我将这个映射表读入HashMap:
String line;
while((line = bufferedReader.readLine()) != null) {
characterMap.put(
line.substring(0, line.indexOf(";")),
line.substring(line.indexOf(";") + 1)
);
}
bufferedReader.close();
效果很好。然后我尝试替换字符:
String target = "";
for (Map.Entry<String, String> entry : characterMap.entrySet()) {
target = source.replace(entry.getKey(), entry.getValue());
}
但是这种替代方法不起作用。
target
包含与 source
相同的内容
如何实现这样的功能?
你应该不断更新结果(目标)
String target = source;
for (Map.Entry<String, String> entry : characterMap.entrySet()) {
target = target.replace(entry.getKey(), entry.getValue());
}