[解決済み] 16進ダンプの文字列表現をバイト配列に変換する Javaを使用する?
2022-03-24 02:42:46
質問
私は、16進数の値を表す長い文字列(ダンプから)をバイト配列に変換する方法を探しています。
を投稿された方ほど、良い表現はないでしょう。 同じ質問をここで .
しかし、オリジナルを保つために、私なりの言い方をしますと、例えば、文字列
"00A0BF"
として解釈してほしい。
byte[] {0x00,0xA0,0xBf}
どうすればいいのでしょうか?
私はJava初心者で、結局は
BigInteger
と、先頭の16進数ゼロに気をつける。しかし、私はそれが醜いと思うし、私はきっと何か単純なことを見逃している。
どのように解決するのですか?
アップデート(2021年)-。
ジャバ17
が含まれるようになりました。
java.util.HexFormat
(25年かかっただけです)。
HexFormat.of().parseHex(s)
古いバージョンのJavaの場合。
これまでに投稿されたどの解決策よりも優れていると思われる方法を紹介します。
/* s must be an even-length string. */
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
return data;
}
改善される理由
-
BigIntegerとは異なり先頭のゼロがあっても安全、Byte.parseByteとは異なり負のバイト値でも安全です。
-
Stringを
char[]
また、1バイトごとにStringBuilderとStringオブジェクトを生成します。 -
使用できない可能性のあるライブラリの依存はありません
引数チェックは
assert
または、引数が安全かどうかわからない場合は例外が発生します。
関連
-
Dateが型に解決できない問題を解決する
-
サーブレットクラスのインスタンス化エラーの解決法
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] JavaでInputStreamをバイト配列に変換する
-
[解決済み] Pythonで16進文字列をintに変換する
-
[解決済み] Javaでバイト配列から16進文字列に変換する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
スタイルが読み込まれず、ブラウザコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
java の例外が発生しました java
-
ファインバグタイプ
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
スキャナは、タイプに解決することはできません最もルーキー初心者の質問
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
エラーの解決方法 jarfile XXX.jarにアクセスできません。
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
linux run jarfile Invalid or corrupt jarfile error.
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策