我有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",};
}
});
答案 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'到'α')。