我要做的是找到一种方法,我可以从EditText字段中取出“camel”这个词,例如c = 2 a = 1 m = 4 e = 5 l = 3。无论如何我可以从字符串中提取单个字符并将它们转换为数字吗?
我尝试使用“split”将每个字符分成一个数组,但我无法弄清楚如何将字母转换为数字 所以我可以这样做:
a=1
b=2
c=3
int temp = (int)(array[1]+array[2]+array[3]+etc...)
使用“camel”的例子将等于15
这是我到目前为止所做的:
String name = inputarea.getText().toString();
String[] array = name.split("");
for(int i =0; i < array.length ; i++)
我遇到的最大问题是如果我试图从阵列中的第7个位置拉出来并且没有任何东西存在。 (骆驼只有5个字符)然后我得到了一个很大的错误。
感谢您提供任何帮助。
编辑:我在玩了几个小时后发现它是我的工作代码:
String firstname = inputarea.getText().toString();
char[] array = firstname.toCharArray();
final char[] array2 = new char[15];
System.arraycopy(array, 0, array2, 0, array.length);
if (array2[0] == 'A' ) {
array2[0] = '1';
}
答案 0 :(得分:1)
建议:
首先,需要定义所有字母,从a-z(A-Z)开始,ASCII码“a”到“z”是97到122,如果要支持大写字母,则需要添加A-Z。
然后,在字符串中输入字母,你可以使用它:
for(int i=0;i<string.length();i++){
int number = string.charAt(i);
}
当你得到号码大小时,你可以减少到基数('a'是97),你会得到个人号码
答案 1 :(得分:0)
String.charAt()是否适合您?
对于转换为数字,如果数字是连续的,您可以定义一个包含要映射的所有字符的固定字符串,并使用String.indexOf()。如果没有,您可以使用带有整数的并行数组或使用Map。