使用String数组将String转换为不同的字符

时间:2013-05-27 11:33:37

标签: java string replace

private void convertToNumeric() {

    for (int i = 0; i < this.CONVERT_TO_NUMERIC.length; i++) {
        for (int j = 0; j < this.INPUT_FROM_USER.length(); j++) {



        }
    }



}



private String INPUT_FROM_USER = "";
private final String[][] CONVERT_VALUES = { {"1", "w"}, { "2", "e"}, {"3", "r"}, 
                                            {"4", "s"}, {"5", "d"}, {"6", "f"}, {"7", "z"},
                                            { "8", "x"}, {"9", "c"} };

private final String[][] CONVERT_TO_NUMERIC = { {"abc", "2"}, {"def", "3"}, {"ghi", "4"},
                                                {"jkl", "5"}, {"mno", "6"}, {"pqrs", "7"},
                                                {"tuv", "8"}, {"wxyz", "9"} };

有人可以就如何将输入转换为字符串数组中指定的字符给我一些指导吗?

这是一个例子。

  • 用户输入“Hello world”
  • 搜索String数组并将String中的每个字符转换为给定的数字
  • 输出“43556 96753”

如果数组的第一个值包含该字符,它将被替换为数字。

我不是要求做饭,我只需要一些关于如何开始的指导。提前谢谢。

2 个答案:

答案 0 :(得分:1)

这似乎是一项工作,更适合HashMapHere是文档。

例如,您可以使用:

HashMap<String, String> map = new HashMap<String, String>();

map.put("H", "10");
map.put("I", "11");

然后当输入字符串到达​​时:

String value = "Hello";
String response = "";

for(char c : value)
{
    response += map.get(String.valueOf(c));
}

答案 1 :(得分:1)

转过来,然后从表格开始(=做什么):

String value = "Hello world";

for (String[] mapping : CONVERT_TO_NUMERIC) {
    value = value.replaceAll("(?i)[" + mapping[0] + "]", mapping[1]);
    // Case insensitive "[abc]" -> "2" etcera.
}

// value now is "43556 96753"

现在另一张桌子也一样。