2012-01-10 9 views
0

私がしようとしているのは、たとえば「EditText」フィールドから「camel」という単語を取り、たとえばc = 2 a = 1 m = 4 e = 5 l = 3とする方法を見つけることです。とにかく文字列から個々の文字を引っ張って数字に変換できますか?文字列から個々の文字を引き出し、数値に変換するにはどうすればよいですか?

私は配列に各文字を分離するために「分割」を使ってみましたが、私はそう、私はのような何かを行うことができます数字 に文字を変換する方法を見つけ出すことはできません。

使用
a=1 
b=2 
c=3 
int temp = (int)(array[1]+array[2]+array[3]+etc...) 

私は7日からプルしようとした場合、私は持っておく

String name = inputarea.getText().toString(); 
String[] array = name.split(""); 
for(int i =0; i < array.length ; i++) 

最大の問題は次のとおりです。「ラクダ」の例としては、これは私がこれまで持っているものである15

に等しくなります配列内の位置は何もありません。 (ラクダは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'; 
} 

答えて

1

が提案:

まず、AZ(AZ)から、すべての文字を定義する必要があります、 ASCIIコード 'a'〜 'z'は97〜122です。もしあなたが上の文字をサポートしたいのであれば、AZを追加する必要があります。

そして、文字列内の文字を取得し、uはこれを使用することができます:あなたは数サイズを取得するとき

for(int i=0;i<string.length();i++){ 
     int number = string.charAt(i); 
} 

は、あなたが(「」97である)塩基数に減らすことができ、あなたが取得します個体番号

+0

実際に '1'を 'a'にしたい場合、charAt行に " - 96"を付加して値を下げることができます。 – mikebabcock

0

String.charAt()はあなたのために機能しますか?

数字に変換する場合、数字が連続している場合は、マップするすべての文字で固定ストリングを定義し、String.indexOf()を使用できます。そうでない場合は、int型の並列配列を持つか、Mapを使用することができます。

関連する問題