Javaで文字を整数としてどのように表現するのか疑問に思いました。2文字の単語の中間の文字を見つけなければならないという問題に取り組んでいます。たとえば、「go」という単語を選択し、各文字に割り当てられた整数値を指定して、中点の文字を検索します。誰かがこれを手伝ってくれるか、2文字の単語の中間の文字を取得する方法を解決するために正しい方向に私を向けることができますか?
7 に答える
それは簡単です
int a = 'a';
int c = 'c';
char mid = (char) ((a + c) / 2);
System.out.println(mid);
版画
b
(int)str.charAt(i) は整数値 (ASCII 値) を取得します。「通常の」手紙の場合、これにより、必要なことを行うことができます。
str = "GO";
midLetter = Character.toChars(((int)str.charAt(0) + (int)str.charAt(1))/2);
ブラケットが合っていると思います...
「文字」でchar
プリミティブ型を参照している場合、それらはすでに舞台裏で整数で表されています。Javaチュートリアルから:
データ型は、単一の
char
16 ビット Unicode 文字です。最小値は'\u0000'
(または 0) で、最大値は'\uffff'
(または 65,535 を含む) です。
したがって、たとえば次のようchar
にリテラルを変数に割り当てることができます。int
int g = 'g';
int o = 'o';
それはあなたが始めるのに十分なはずです。
Java (および他のほとんどの言語) では、文字は実際には数字として表されます。a
「ASCII テーブル」を Google で検索すると、小文字が実際には 97であることがわかります。
小文字a
を 0 としてインデックス付けする場合、文字列から任意の文字を指定すると、「a」文字でそれを減算でき、インデックスを取得できます。
String str = ...;
for(int i=0; i<str.length(); i++) {
char c = str.charAt(i);
int cIndex = c - 'a';
// do something with cIndex...
}
指定された文字が char の場合は、タイプ (int)yourword を変換します。次に中点を求めます
Character.getNumericValue は、各文字の数値を返します。そのため、各文字は Character クラスを介して一意の数値を持ちます。
ケースなどを考慮する必要があるかもしれませんが、これが注文の出発点になる可能性があります。
int
から前後に移動して、値char
に対して算術演算を実行できる必要があります。char
char median = 0;
for(char ch=65; ch<91; ch++) {
System.out.println(ch);
median += ch;
}
median = (char)(median/26);
System.out.println("=====");
System.out.println("Median leter in the alphabet: "+median);