将字符串的每个字符转换为整数

时间:2012-09-21 08:24:58

标签: android string

我用它们各自的整数/数值硬编码'a到z'整数。 像

    int a=0, b=1, c=2, d=3, e=4, f=5, g=6;   

现在我有一个编辑文本,可以像abcdefg一样输入。我想将字符串的每个字符转换为int,以便我可以得到 0123456作为abcdefg的回报 那可能吗?请帮忙。提前谢谢。

5 个答案:

答案 0 :(得分:2)

为此,最好使用hashmap

取消哈希映射中的值,如下所示

HashMap<String,Integer> map = new HashMap<String,Integer>();
    map.put("a", 0);
    map.put("b", 1);
    map.put("c", 2);
    map.put("d", 3);
            //....
    map.put("z",25);


    String s1 ="abcdefg";//String from edit text
    char[] sa = s1.toCharArray();//converting to character array.
    String str ="";
    for(int i=0;i<sa.length;i++)
    {
        str = str+(map.get(Character.toString(sa[i])));
    }
    System.out.println(str);//Here str show the exact result what you required.

答案 1 :(得分:1)

非常简单。首先,您必须从edittext获取字符串,然后将其转换为字符串数组,并在for循环中进行比较。

String convertedText;
String str = editText.getText().toString();;
char[] ch = str.toCharArray();
for (char c : ch)
{
      System.out.println(c);
      if(c == 'a')
          convertedText = convertedText + "1"; 
      // Coding to compare each character
}

答案 2 :(得分:0)

如果您打算修改编辑文本中的输入,即当用户在'a'时看到'1'而不是..尝试覆盖addTextChangedListener使用onTextChanged(如果要修改它在用户写作时)或afterTextChanged(如果你想在用户完成后修改它):

editText.addTextChangedListener(new TextWatcher(){
    public void afterTextChanged(Editable s) {

    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after){
    }
    public void onTextChanged(CharSequence s, int start, int before, int count){
    }
}); 

答案 3 :(得分:0)

这可以这样做 a的ASCII值为97得到值0减去97所以..

IN C

.......
char *insert = "abcdefg";
for (int i = 0; i < 7; ++i)
int value = ((digit_to_int(insert[i]))-97)+1
printf("%d", value );
.........



int digit_to_int(char d)
{
 char str[2];

 str[0] = tolower(d);
 str[1] = '\0';
 return (int) strtol(str, NULL, 10);
}

你可以达到这个目标

答案 4 :(得分:0)

尝试使用此

String text = "hitesh";
    char[] ch = text.toCharArray();
    StringBuilder sb = new StringBuilder();
    for(char cd :ch)
    {
        int n = cd-'a'; 
        sb.append(n);
    }
    System.out.println(sb.toString());