我已经用它们各自的整数/数值硬编码了“a 到 z”整数。像
int a=0, b=1, c=2, d=3, e=4, f=5, g=6;
现在我有一个编辑文本,可以像 abcdefg 一样接受输入。我想将字符串的每个字符转换为 int 以便我可以得到 0123456 作为 abcdefg 的回报这可能吗?请帮忙。提前致谢。
为此,最好使用 hashmap
哈希图中的 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.
它非常简单。首先,您必须从 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
}
如果您打算修改编辑文本中的输入,即当用户输入“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){
}
});
这可以这样完成
,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);
}
你可以达到这个
尝试使用这个
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());