0

質問はコード内のコメントにあります。その方が簡単に質問できると思いました...

簡単な質問ですが、答えが見つからないようです。byte[]文字列を(簡単に)変換したいString.getBytes()101011010101001次に、バイトの文字列(たとえば)をバイト[]に変換し、その文字列値を取得します(これも簡単ですnew String(byte[]):)

ここに私がこれまでに持っているものがあります:

Scanner scan = new Scanner(System.in);
String string = scan.nextLine();
String byteString = "";
for (byte b : string.getBytes()) {
  byteString += b;
}
System.out.println(byteString);

//This isn't exactly how it works, these two parts in separate methods, but you get the idea...

String byteString = scan.nextLine();
byte[] bytes = byteString.literalToBytes() //<== or something like that...
//The line above is pretty much all I need...
String string = new String(bytes);
System.out.println(string);
4

4 に答える 4

1

よし、この質問指摘してくれコメント投稿者 (これが私をこの回答に導いた) は答えないので、ここに解決策を投稿します:

Scanner scan = new Scanner(System.in);
String pass = scan.nextLine();
StringBuilder byteString = new StringBuilder();
for (byte b : pass.getBytes()) {
  b = (byte) (b);
  byteString.append(b).append(","); //appending that comma is what does the trick.
}
System.out.println(byteString);
//
String[] split = byteString.toString().split(","); //splitting by that comma is what does the trick... too...
byte[] bytes = new byte[split.length];
for (int i = 0; i < split.length; i++) {
  bytes[i] = (byte) (Byte.valueOf(split[i]).byteValue());
}
System.out.println(new String(bytes));
于 2012-05-23T14:59:50.023 に答える
1

編集

解決策については、この回答を参照してください。

これにより、次のことができます。

String string = scan.nextLine();
String convertByte = convertByte(string.getBytes());
System.out.println(convertByte);
String byteString = scan.nextLine();
System.out.println(new String(convertStr(byteString)));
于 2012-05-23T14:30:00.427 に答える
1

これはうまくいきません。問題は、バイトを文字列に変換すると、次のような文字列が得られることです

2532611134

この文字列を分析すると、最初のバイトは 2 ですか、25 ですか、それとも 253 ですか?

これを機能させる唯一の方法は、DecimalFormat を使用し、文字列内のすべてのバイトが 3 文字であることを確認することです。

于 2012-05-23T14:31:32.960 に答える
0

あなたが欲しいのはこれだと思います

// to get back the string from byte array
StringBuilder byteString = new StringBuilder();
for (byte b : string.getBytes()) {
    byteString.append((char)b);
}
   System.out.println(byteString.toString());
// to get the binary representation from string
StringBuilder byteString = new StringBuilder();
    for (byte b : string.getBytes()) {
        System.out.print(Integer.toBinaryString((int)b));
    }
        System.out.println(byteString.toString());
于 2012-05-23T14:46:24.467 に答える