1

Javaで文字を整数としてどのように表現するのか疑問に思いました。2文字の単語の中間の文字を見つけなければならないという問題に取り組んでいます。たとえば、「go」という単語を選択し、各文字に割り当てられた整数値を指定して、中点の文字を検索します。誰かがこれを手伝ってくれるか、2文字の単語の中間の文字を取得する方法を解決するために正しい方向に私を向けることができますか?

4

7 に答える 7

4

それは簡単です

    int a = 'a';
    int c = 'c';
    char mid = (char) ((a + c) / 2);
    System.out.println(mid);

版画

b
于 2013-02-07T04:25:07.920 に答える
1

(int)str.charAt(i) は整数値 (ASCII 値) を取得します。「通常の」手紙の場合、これにより、必要なことを行うことができます。

str = "GO";
midLetter = Character.toChars(((int)str.charAt(0) + (int)str.charAt(1))/2);

ブラケットが合っていると思います...

于 2013-02-07T04:25:02.253 に答える
1

「文字」でcharプリミティブ型を参照している場合、それらはすでに舞台裏で整数で表されています。Javaチュートリアルから:

データ型は、単一のchar16 ビット Unicode 文字です。最小値は'\u0000'(または 0) で、最大値は'\uffff'(または 65,535 を含む) です。

したがって、たとえば次のようcharにリテラルを変数に割り当てることができます。int

int g = 'g';
int o = 'o';

それはあなたが始めるのに十分なはずです。

于 2013-02-07T04:25:04.097 に答える
1

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...
}
于 2013-02-07T04:25:49.303 に答える
0

指定された文字が char の場合は、タイプ (int)yourword を変換します。次に中点を求めます

于 2013-02-07T04:25:30.897 に答える
0

Character.getNumericValue は、各文字の数値を返します。そのため、各文字は Character クラスを介して一意の数値を持ちます。

ケースなどを考慮する必要があるかもしれませんが、これが注文の出発点になる可能性があります。

于 2013-02-07T04:26:09.790 に答える
0

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);
于 2013-02-07T04:27:42.860 に答える