Java で「1」を文字に変換すると空の出力が得られるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-15 07:42:02
オリジナル
864 人が閲覧しました

Why Does Converting `1` to a Character in Java Result in an Empty Output?

Java で整数を文字に変換する謎を明らかにする

Java で整数を文字に変換するのは一般的なタスクですが、そうでない場合は混乱する可能性があります正しく理解されました。この記事では、この変換に関係する複雑さを明らかにし、潜在的な問題の解決策を提供します。

空の出力の背後にある謎

以下のコード スニペットを考えてみましょう:

int a = 1;
char b = (char) a;
System.out.println(b);
ログイン後にコピー

この場合、出力は空の文字列になります。その理由は、Java で使用される Unicode エンコーディング スキームにあります。 (char) キャストを使用して整数 a が文字に変換されると、それは見出しの開始文字に対応する Unicode コード ポイント 1 として解釈されます。この文字は印刷できないため、空の出力になります。

The '1' Trick

対照的に、次のコード スニペットは文字「1」を印刷します。

int a = '1';
char b = (char) a;
System.out.println(b);
ログイン後にコピー

これは、 a の初期化の一重引用符が文字リテラルを扱っていることを示しているためです。この場合、文字「1」は Unicode コード ポイント 49、つまり文字「1」に対応します。

数字を文字に変換

必要に応じて数字 (0 ~ 9) を文字に変換するには、数字に 48 を加算してから文字にタイプキャストします。

int digit = 7;
char c = (char) (digit + 48);
System.out.println(c); // Output: '7'
ログイン後にコピー

または、Character.forDigit() メソッドを使用することもできます。

int digit = 7;
char c = Character.forDigit(digit, 10);
System.out.println(c); // Output: '7'
ログイン後にコピー

Unicode コード ポイントを文字に変換する

Unicode コード ポイントを表す整数を文字に変換するには、Character.toChars() を使用できます。 method:

int codePoint = 65;
char[] chars = Character.toChars(codePoint);
char c = chars[0];
System.out.println(c); // Output: 'A'
ログイン後にコピー

これらのテクニックを理解することで、混乱や予期せぬ出力を避けて、自信を持って Java で整数を文字に変換できます。

以上がJava で「1」を文字に変換すると空の出力が得られるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート