Java 替换 UTF-8 字符

问题描述 投票:0回答:1

我需要编写一个函数来将一些“特殊字符”翻译为“非特殊字符”。我的发送系统支持整个 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

相同的内容

如何实现这样的功能?

java
1个回答
0
投票

你应该不断更新结果(目标)

  String target = source;
  for (Map.Entry<String, String> entry : characterMap.entrySet()) {
      target = target.replace(entry.getKey(), entry.getValue());
  }
© www.soinside.com 2019 - 2024. All rights reserved.