2013-05-27 61 views
0
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"} }; 

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

下面是一个例子。

  • 用户输入“世界你好”
  • 搜索字符串,阵列和在串中的每个字符转换为给定数
  • 输出“43556 96753”

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

我不是要求舀,我只是需要一点关于如何开始的指导。提前致谢。

+0

是那个字符编号1到1的映射,我问这个,因为我看到两个数组'CONVERT_TO_NUMERIC'和'CONVERT_VALUES'! – NINCOMPOOP

+0

“Hello World”如何变成“43556 96753”。 'h'='4','e'='3'? – NINCOMPOOP

+0

每个字符都用CONVERT_TO_NUMERIC中的相应编号替换,如果第一个字符串包含该字母,则替换为数字。 – user1848712

回答

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)); 
} 
+0

有没有办法用HashMap或类似的东西来使用contains方法?因为我正在使用\t values.put(“abc”,“2”);并且它在我试图获取值时返回null,因为它不存在 – user1848712

+0

[This question](http://stackoverflow.com/questions/3430170/how-to-create-a-2-way-map在Java)似乎指向你在正确的方向。 – christopher

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" 

现在对于其他表格也是如此。

+0

是的,谢谢,除了我不是要替换整个字符串,而是每个字符。我不确定这是否会以我想要的方式工作 – user1848712

相关问题