私が提供している16進値から文字列を作成する必要があります。たとえば、代わりに次のように割り当てるのHex値を文字列に渡す方法 - Android
:
String message = "123";
私はこのように割り当てる:
String message = 0x31, 0x32, 0x33;
が可能ということですか?おそらく、また、使用している文字セットを指定する必要がありますが、これはそれを行います
私が提供している16進値から文字列を作成する必要があります。たとえば、代わりに次のように割り当てるのHex値を文字列に渡す方法 - Android
:
String message = "123";
私はこのように割り当てる:
String message = 0x31, 0x32, 0x33;
が可能ということですか?おそらく、また、使用している文字セットを指定する必要がありますが、これはそれを行います
:
String message = new String(new byte[] {0x31, 0x32, 0x33});
System.out.println(message); // prints 123.
あなたは文字を指定したいなかった場合は、それがString
コンストラクタのちょうど別のパラメータである設定しました。次の例では19+ AndroidのAPIをターゲットにしている場合は動作します:
String message = new String(new byte[] {0x31, 0x32, 0x33}, StandardCharsets.UTF_8);
あなたは(たとえば、あなたはJSONオブジェクトに、サーバーから値を取得している)のHex値のString
表現を持っている場合は、必要がある場合がありますそれを16進値として扱うようにしてください。あなたはimport org.apache.commons.codec.binary.Hex;
をインポートして、これを行うことができます。
String stringHex = "a37e7391ebbc939a8489788d93015914eeee423132e2516711e81d53777067ee"
String yourString = new String(Hex.decodeHex(stringHex.toCharArray()), StandardCharsets.UTF_8);
ちょうど上記の回答に追加したいです。
あなたは間違いなくそのバイトシーケンスに関連するエンコーディングを指定する必要があります。ただし、デフォルトではutf-8になります。 – njzk2