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
버전이 선호됩니다.그게다가String
Java 내의 오브젝트는 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
'programing' 카테고리의 다른 글
datepicker viewetify에서 날짜를 선택하면 메서드를 어떻게 호출할 수 있나요? (0) | 2022.08.19 |
---|---|
정의되지 않은 lodash groupby 키 변경 (0) | 2022.08.18 |
구조에서 변수 이름 앞에 있는 점은 무엇을 의미합니까? (0) | 2022.08.18 |
VueJ를 통해 DOM 요소 선택s (0) | 2022.08.18 |
C에 부호 없는 포화 덧셈을 어떻게 하나요? (0) | 2022.08.18 |