2014-12-16 2 views
0

다음과 같은 이진 문자열이 있습니다. String a = "100100". 출력을 위해 byte [] b = {1,0,0,1,0,0} 이진 바이트 배열을 가져야합니다. Java에서 이진 문자열을 이진 바이트 배열로 변환하는 방법

내 코드입니다 :

String a="100100"; 

    byte[] b = null; 
    for (int i = 0; i < a.length(); i++) { 
     b[i]=a.charAt(i)=='1'? (byte) 1: (byte) 0; 
     System.out.println("b["+i+"]: "+b[i]); 
    } 

하지만 난 그것을 실행할 때이 방법은 작동하지 않습니다. 누구라도 수정할 수 있습니까? 고마워요

답변

0

바이트 [] 초기화되지 않았습니다. 그래서 우리는 그것을 사용하기 전에 초기화해야합니다.

byte[] b = new byte[a.length()]; 

try this 
+0

당신을 감사합니다! 나는 그것을 알지 못했다 – user3698011

0

당신은 당신이 나중에 인덱스를 참조하기 때문에 따라서, NullPointerException의 결과로, 당신의 byte[] b에 값을 할당하지 않았습니다.

이 대신보십시오 :

String a="100100"; 

byte[] b = new byte[a.length()]; // here 
for (int i = 0; i < a.length(); i++) { 
    b[i]=a.charAt(i)=='1'? (byte) 1: (byte) 0; 
} 
System.out.println(Arrays.toString(b)); // easier print once finished 

출력

[1, 0, 0, 1, 0, 0] 
+0

정정에 감사드립니다! – user3698011

관련 문제