[解決済み] 文字リテラルにエスケープされた数値(例:「 \15 」)がある場合のJavaのセマンティクスを教えてください。
2023-05-11 20:42:05
質問
以下のコードを実行すると、具体的にどのようなことが起こるのか説明してください。
int a='\15';
System.out.println(a);
これは13をプリントアウトします。
int a='\25';
System.out.println(a);
これは21をプリントアウトします。
int a='\100';
System.out.println(a);
これは64をプリントアウトします。
どのように解決するのですか?
シングルクォートで区切られた文字リテラルを割り当てた場合。
'a'
(二重引用符で区切られた文字列リテラルとは異なる、例えば
"a"
のように) を
int
変数に変換する。Javaは、16ビットの符号なし
char
から32ビットの符号付き
int
.
ただし、文字リテラルがバックスラッシュの後に1〜3桁の数字が続く場合、その文字は 8進数 ( ベース/基数 8) で表現する。このように
-
\15
= 1×8 + 5 = 13 (キャリッジリターン。'\r'
) -
\25
= 2×8 + 5 = 21 (NAK文字 - 否定的な承認) -
\100
= 1×64 + 0×8 + 0 = 64 (@記号。'@'
)
文字リテラルとエスケープシーケンスの詳細については、JLSのセクションを参照してください。
を引用して BNF を3.10.6から引用します。
OctalEscape:
\ OctalDigit
\ OctalDigit OctalDigit
\ ZeroToThree OctalDigit OctalDigit
OctalDigit: one of
0 1 2 3 4 5 6 7
ZeroToThree: one of
0 1 2 3
関連
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
セミコロン期待値エラー解決
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] B "の印刷が "#"の印刷より劇的に遅いのはなぜですか?
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] 特定のUnicode文字を含むコメントでのJavaコードの実行が許可されているのはなぜですか?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
-
[解決済み】Apache Camelとは一体何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
型に解決できない エラー解決
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
javaの非静的メソッドを静的に参照することができない
-
Java の switch case 文で必要な定数式の問題の解決法
-
Uncaught ReferenceError: は定義されていません。
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
Junitのユニットテストエラー
-
Java基礎 - マッピングとQ/A
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ