programing

Java String을 바이트로 변환하는 방법[]

bestcode 2022. 8. 18. 23:41
반응형

Java String을 바이트로 변환하는 방법[]

Java를 변환하는 방법이 있습니까?String에 대해서byte[](박스가 아닌Byte[])?

이것을 시험할 때:

System.out.println(response.split("\r\n\r\n")[1]);
System.out.println("******");
System.out.println(response.split("\r\n\r\n")[1].getBytes().toString());

다른 출력도 나오고 있습니다.gzip 문자열이므로 첫 번째 출력을 표시할 수 없습니다.

<A Gzip String>
******
[B@38ee9f13

두 번째는 주소입니다.제가 뭐 잘못하고 있는 거라도 있나요?그 결과가 필요합니다.byte[]gzip dempressor에 공급하기 위해 다음과 같이 합니다.

String decompressGZIP(byte[] gzip) throws IOException {
    java.util.zip.Inflater inf = new java.util.zip.Inflater();
    java.io.ByteArrayInputStream bytein = new java.io.ByteArrayInputStream(gzip);
    java.util.zip.GZIPInputStream gzin = new java.util.zip.GZIPInputStream(bytein);
    java.io.ByteArrayOutputStream byteout = new java.io.ByteArrayOutputStream();
    int res = 0;
    byte buf[] = new byte[1024];
    while (res >= 0) {
        res = gzin.read(buf, 0, buf.length);
        if (res > 0) {
            byteout.write(buf, 0, res);
        }
    }
    byte uncompressed[] = byteout.toByteArray();
    return (uncompressed.toString());
}

메서드의 오브젝트decompressGZIP()니즈는byte[].

질문하신 질문에 대한 기본적인 기술적인 답변은 다음과 같습니다.

byte[] b = string.getBytes();
byte[] b = string.getBytes(Charset.forName("UTF-8"));
byte[] b = string.getBytes(StandardCharsets.UTF_8); // Java 7+ only

하지만 당신이 씨름하고 있는 것처럼 보이는 문제는 이것이 잘 나타나지 않는다는 것입니다.부르기toString()디폴트값만 제시합니다.Object.toString()클래스 이름 + 메모리 주소입니다.결과[B@38ee9f13,그[B수단byte[]그리고.38ee9f13메모리 주소입니다.@.

표시 목적으로 사용할 수 있는 것은, 다음과 같습니다.

Arrays.toString(bytes);

그러나 이것은 쉼표로 구분된 정수 시퀀스로 표시되며, 원하는 정수일 수도 있고 그렇지 않을 수도 있습니다.

읽을 수 있게 하려면String에서 돌아오다byte[], 사용방법:

String string = new String(byte[] bytes, Charset charset);

그 이유는Charset버전이 선호됩니다.그게다가StringJava 내의 오브젝트는 UTF-16으로 내부에 저장됩니다.로 변환하는 경우byte[]지정된 글리프에 대해 바이트의 다른 분석을 얻을 수 있습니다.String(선택한 문자셋에 따라 다릅니다).

  String example = "Convert Java String";
  byte[] bytes = example.getBytes();

심플:

String abc="abcdefghight";

byte[] b = abc.getBytes();

String.getBytes()를 사용해 보십시오.문자열 데이터를 나타내는 바이트[ ]를 반환합니다.예제:

String data = "sample data";
byte[] byteData = data.getBytes();

사용할 수 있습니다.String.getBytes()그 결과,byte[]어레이를 설정합니다.

너도 한번 해봐return new String(byteout.toByteArray(Charset.forName("UTF-8")))

java를 String 파라미터로 변경할 필요는 없습니다.포인터 없이 해당 코드로 문자열을 수신하려면 c 코드를 변경해야 합니다.

Bool DmgrGetVersion (String szVersion);

Char NewszVersion [200];
Strcpy (NewszVersion, szVersion.t_str ());
.t_str () applies to builder c ++ 2010

파티에 조금 늦은 건 알지만 이 일은 꽤 깔끔하다(교수님이 주신 것이다).

public static byte[] asBytes (String s) {                   
           String tmp;
           byte[] b = new byte[s.length() / 2];
           int i;
           for (i = 0; i < s.length() / 2; i++) {
             tmp = s.substring(i * 2, i * 2 + 2);
             b[i] = (byte)(Integer.parseInt(tmp, 16) & 0xff);
           }
           return b;                                            //return bytes
    }

언급URL : https://stackoverflow.com/questions/18571223/how-to-convert-java-string-into-byte

반응형