replaceAll声明中的所有字符到新字符

时间:2016-06-08 16:44:51

标签: java android

我有EditText,用户可以编写和声明

我需要将所有字符替换为新字符。

arrayOfChar1 字符数组,用于从a到z的所有字符的ASCII代码 我需要将edittext中用户输入的所有字符更改为此数组中的所有新字符 arrayOfString1 但我不知道如何替换所有人物

来自用户的输入示例:“你好吗” 输出:“нσωαяєyσυ”

btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String str2 = edit.getText().toString();
            char[] arrayOfChar1 = { 97, 98, 99, 100, 101};
            String[] arrayOfString1 = { "α", "в", "c",};

        }
    });

2 个答案:

答案 0 :(得分:0)

HashMap更适合您的任务。

final static HashMap<Character, String> replacements = new HashMap<Character, String>() {{
    put('a', "α" );
    put('b', "в"); 
    put('c', "c");
    put('d', "ɒ");
    put('e', "є");
    // ...
}};

要翻译的代码

String str = "abbacde";
char[] chars = str.toCharArray();
for (char c : chars) {
    String replacement = replacements.get(c);
    str = str.replaceAll(""+c, replacement);
}

System.out.println(str); // αввαcɒє

答案 1 :(得分:0)

如果我理解,你想用[y]替换字符串中[x]的实例,其中x是format中的值,y是arrayOfChar1中的对应值。如果是这种情况,您可能需要查看地图。

arrayOfString1

然后遍历地图

HashMap<Character, Character> charMap = new HashMap<>();
charMap.put('α', 'a');
charMap.put('в', 'b');
// ... finish the rest

这比具有彼此对应的单独阵列更易于管理。您还可以创建一个允许您映射到多个字符的地图(例如'a'和'A'到'α')。