CodeGym /Java Blog /ランダム /Java での Char から Int への変換と例
John Squirrels
レベル 41
San Francisco

Java での Char から Int への変換と例

ランダム グループに公開済み
多くの場合、ユーザーがキーボードから入力する記号情報は数値に変換するか、プログラマーが数値を取得する必要があります。Java にはそれを行うためのメソッドがいくつかあります。この記事では、char を int 値に変換するのに役立つメソッドを理解します。

暗黙的な型キャスト

型キャストは、あるデータ型の値を別のデータ型の値に変換するプロセスです。型キャストは、型に応じて手動または自動で行うことができます。型には互換性がある必要があります。Java には、明示的と暗黙的の 2 種類の型キャストがあります。暗黙的は、変数を「より大きい」型から「より小さい」型に変換する場合にのみ実行できます (たとえば、intからlongへ)。)。char 型の変数を int データ型に変換したい場合、ほとんどの場合、ASCII テーブルから同等の値を取得する必要があります。デジタル的に入力できるすべてのアルファベットや記号には、対応する一意の整数が割り当てられています。たとえば、アルファベット「A」の ASCII コードは 65 です。型キャストにより、文字値を同等の ASCII 整数コードに強制的に変換します。これは、型キャストを使用した Java char から int への例です。

Java char から int への例 (typeCasting を使用)


package charToInt;

public class Implicit {

       public static void main(String[] args) {
           char char1 = 'A';
           char char2 = 'a';
           int x = char1;
           int y = char2;

           System.out.println("ASCII value of '" + char1 + "' is " + x);
           System.out.println("ASCII value of '" + char2 + "' is " + y);
       }
   }
出力は次のとおりです。
「A」の ASCII 値は 65 です。 「a」の ASCII 値は 97 です

明示的な型キャスト

上で見たように、char から int への変換の場合、char の格納に 2 バイトが使用され、int の格納に 4 バイトが使用されるため、これを明示的に行う必要はありません。つまり、int型の方が「大きい」ということです。ただし、練習として、char 変数を整数に明示的にキャストできます。この操作については、(int) を括弧内に記述します。

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
出力は次のとおりです。
「A」の ASCII 値は 65 です

getNumericValue() の使用

getNumericValue() は型キャストと同様に機能しますが、ASCII テーブルに従うのではなく、Unicode エンコード標準に従います。ASCII は、ラテン文字 (およびいくつかの国別アルファベット記号)、数字、句読点、制御文字など、特定の記号と文字のセットのみを表すことができます。Unicode には、世界中のあらゆる言語の文字と記号を含む 100 万を超える値が含まれています。たとえば、Unicode の A の値は \u0041 で、これは数値 10 に相当します。文字に数値がない場合、メソッドは -1 を返します。このメソッドを使用すると、負でない整数を返すのに便利です。

package charToInt;

public class UsingGetNumericValue {

       public static void main(String[] args) {
           char char1 = '7';
           char char2 = 'A';
           char char3 = '*';

           int x = Character.getNumericValue(char1);
           int y = Character.getNumericValue(char2);
           int z = Character.getNumericValue(char3);

           System.out.println("The Unicode value of '" + char1 + "' is " + x);
           System.out.println("The Unicode value of '" + char2 + "' is " + y);
           System.out.println("The Unicode value of '" + char3 + "' is " + z);

       }
   }
出力は次のとおりです。
「7」の Unicode 値は 7 です。 「A」の Unicode 値は 10 です。 「*」の Unicode 値は -1 です。

ParseInt() の使用

ParseInt() は、char を int に変換する別のメソッドです。また、float、double、long などの他の数値データ型間の相互変換にも広く使用されています。ParseInt() には、少なくとも 1 つの引数、最大で 2 つの引数が必要です。最初の引数は、変換する値の変数名です。2 番目の引数は、10 進数、8 進数、16 進数などの基本値を参照する基数です。ParseInt()は数値体系も考慮してデータ型を変換できるため、「数値」の変換には最適です。 ” Java での char から int への変換。この方法を使用する場合は、留意すべき重要な点が 2 つあります。 parseInt()このメソッドは String 引数のみを受け入れるため、最初に char を String に変換する必要があります ( String.valueOfを使用)。parseInt()を使用して、char データ型に格納された数値を除くアルファベットやその他の記号を変換することはできません。数値以外の値を入力するとエラーが発生します。Java の例を次に示します。

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = '7';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
出力は次のとおりです。
7
数値以外の値に parseInt を使用してみましょう。

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = 'q';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
出力は次のとおりです。
スレッド "main" java.lang.NumberFormatException での例外: 入力文字列の場合: "q" (java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) (java.base/java.lang.Integer.parseInt)) (Integer.java:652) java.base/java.lang.Integer.parseInt(Integer.java:770) charToInt.ValueOf.main(ValueOf.java:6)

「0」を引く

文字を整数に変換する非常に簡単な方法があります。これを行うには、文字「0」の ASCII 値を文字から減算するだけです。たとえば、文字「7」から int 7 を取得するには、次のようにします。

int intValue = '7'-' 0 ';
これは整数文字のみの int 値を取得する場合に機能することに注意してください。たとえば「A」から「0」を減算すると、メソッドは単に ASCII コードのゼロと文字 A の差を返します。例を次に示します。

package charToInt;

public class SubtractingZero {

   public static void main(String[] args) {
       char char1 = '7';
       char char2 = 'A';
       char char3 = '*';

       System.out.println(char1);
       System.out.println(char1 - '0');

       System.out.println(char2);
       System.out.println(char2 - '0');

       System.out.println(char3);
       System.out.println(char3 - '0');
      
   }

}
出力は次のとおりです。
7 7 A 17 * -6

結論

Java で char を int に変換する必要がある場合は、次のいずれかの方法を使用します。
  • 暗黙的な型キャスト //ASCII 値の取得
  • Character.getNumericValue()
  • Integer.parseInt() //String.valueOf()とペア)
  • '0' の減算 // 整数値に対してのみ機能します
明示的な型キャストを行うこともできます。ただし、これは冗長な操作です。必要ありませんが、Java でのみ機能します。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION