1

それぞれの整数/数値で「aからz」の整数をハードコーディングしました。お気に入り

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

今、私はabcdefgのような入力を取ることができる編集テキストを持っています. abcdefg の代わりに 0123456 を取得できるように、string の各文字を int に変換したいのですが、可能ですか? 助けてください。前もって感謝します。

4

5 に答える 5

2

これには、ハッシュマップを使用することをお勧めします

以下のようなハッシュマップの delecare 値

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.
于 2012-09-21T08:46:55.480 に答える
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
}
于 2012-09-21T08:29:53.640 に答える
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());
于 2012-09-21T08:49:07.600 に答える
0

編集テキストの入力を変更する場合、つまり、ユーザーが 'a' を挿入すると、代わりに '1' が表示されます..use をオーバーライドaddTextChangedListeneronTextChangedてみてください (ユーザーが書いている間に変更したい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){
    }
}); 
于 2012-09-21T08:29:02.623 に答える
0

これは、次のように実行できます
a の ASCI 値は 97 で、0 から 97 を引いた値を取得します。

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

あなたはこれを達成することができます

于 2012-09-21T08:37:12.283 に答える