入力した文字を数字にしようとしています。
たとえば、「A」は 0、「B」は 1、「C」は 2 などです。
次の線に沿って考えてみてください。
'A'
から引くと'A'
、 が得られ0
ます。'A'
から引くと'B'
、 が得られ1
ます。'A'
から引くと'C'
、 が得られ2
ます。等々。
それはあなたに何らかのパターンを与えますか?このパターンから数式を作成できます。
自分で試してみてください。公式を発見!
宿題のようですので、完全な回答は差し控えさせていただきます。:-)
public int letterToNumber(String letter) {
int letterNumber = letter.toLowerCase().toCharArray()[0] - 'a' + 1;
if (letterNumber < 1 || letterNumber > 26) {
return 0;// Not a letter from a-z
}
return letterNumber;
}
String letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char input = 'e';
int indexVal = letters.indexOf(Character.toUpperCase(input));
にキャストchar
しint
、 の値で減算できます(int) 'A'
。このような :
char z = 'Z'
int number = (int) z - (int) 'A';
すべての文字は int 値、ASCII 値を持ちます。char を int にキャストしてその値を取得できます (また、int を char にキャストして逆にすることもできます)。
私のコメントを拡張すると、これを行うことができます。
int aAsciiValue = (int)'a';
char input = however you get your input;
int result = (int)input - aAsciiValue;
HashMapを使用することができます。事前に文字間の「関連付け」を準備する - そのインデックス