2012-07-27 5 views
3

이것은 단순히 내 코드를 검사하는 오류 일 뿐이지 만 바이트 배열에서 단일 바이트를 문자열로 변환하려고합니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까? 이것은 내가 지금까지 가지고있는 것입니다 :단일 바이트를 문자열로 변환 하시겠습니까?

recBuf = read(5); 
Log.i(TAG, (String)recBuf[0]); 

물론 이것은 작동하지 않습니다.

나는 조금 주위에 검색 좀 있지만 문자열로 전체 바이트 [] 배열로 변환하는 방법을 발견했다 ...

new String(recBuf); 

내가 그렇게 만 할 수 알고, 다음 문자열을 통해 선별 , 그러나 내가이 방법을 운영하는 방법을 안다면 내 일이 더 쉬워 질 것이다.

답변

7

는 단일 바이트 새로운 바이트 배열을 만들 수 있습니다

new String(new byte[] { recBuf[0] }) 
0

편집 : 괜찮나 약

""+ recBuf[0];//Hacky... not sure if would work 
((Byte)recBuf[0]).toString(); 

문제가 해결 것이라고 확신.

+0

그것은하지 않습니다, 감사하지만. – JuiCe

+0

흠, 나는 그것이 .toString을 호출 할 것이라고 생각했는데 ... 비록 원시적이지만 ... – meiamsome

0

char로 변환하면 어떨까요? 또는 단순히

new String(buffer[0]) 
+0

아래를 보면 작동하지 않습니다. – JuiCe

0

또는 '오래된'방법

Byte x = 1; 
String dog = x.toString(); 
0

공공 정적 문자열 toString (바이트 값) 때문에

: 레벨 1 은 간결하고 사람이 읽을 수있는 포함 된 문자열을 반환 API 지정된 바이트 치의 설명.

매개 변수 값 문자열로 변환 할 바이트입니다. 반환 값의 인쇄 가능한 표현입니다.] 1 이 당신이 위의 시도 귀하의 요구 사항에 따라 문자열 try 코드에 Byte

String s=Byte.toString(recBuf[0]); 

+0

http://developer.android.com/reference/java/lang/Byte.html#toString(byte)이 링크를 사용해보십시오 –

6

사용 toString 방법을 단일 바이트로 변환 할 수있는 방법, 그것은 작동합니다.

예 :

byte b=14; 
String s=Byte.toString(b); 
System.out.println("String value="+ s); 

출력 :

String value=14 
+0

고맙습니다. "올바른"방법이라고 생각합니다. –

2

형태 String(byte[] bytes, int offset, int length)String 생성자가있다. 항상 전환에 사용할 수 있습니다.

따라서, 예를 들어 :

byte[] bite = new byte[]{65,67,68}; 

    for(int index = 0; index < bite.length; index++) 
     System.out.println(new String(bite, index,1)); 
0

또 다른 대안은 bytechar에 마지막으로 string

Log.i(TAG, Character.toString((char) recBuf[0])); 

또는

Log.i(TAG, String.valueOf((char) recBuf[0])); 
0

당신은 당신이있어 가정하고 변환 할 수 있습니다 ASCII와 같은 8 비트 문자 인코딩 사용 및 t 그의 다른 많은 사람들에게 잘못된 것입니다.

그러나

은 당신의 가정에 당신은 단지뿐만 아니라

char yourChar = (char) yourByte; 

같은 문자에 간단한 캐스트를 사용하거나 수있는 정말 문자열을 필요로하는 경우 :

String string = String.valueOf((char)yourByte); 
관련 문제