如何从字符串中提取单个字符并将其转换为数字?

时间:2012-01-10 02:56:08

标签: android arrays string

我要做的是找到一种方法,我可以从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';
}

2 个答案:

答案 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。