2017-11-07 15 views
0

바이트 배열에서 UTF16 문자열을 추출하면 변환 된 문자열을 인쇄 할 때 문자열이 하나 이상의 NULL (U + 0000)으로 구분되어 NULL이 자동으로 트림되고, 아래의 예제 프로그램 출력 "상생은"NULL로 UTF16 문자열을 분할하는 간단한 방법

import java.nio.charset.Charset; 

class Ucs { 
    public static void main(String[] args) { 
     byte[] b = new byte[] {87, 0, 105, 0, 110, 0, 0, 0, 0, 0, 87, 0, 105, 0, 110, 0, 0, 0}; 
     String s = new String(b, Charset.forName("UTF-16LE")); 
     System.out.println(s); 
    } 
} 

그러나 나는 그들에게 내가 뭔가에 의해 s을 분할하는 경우에만, "승리 승리"와 같은 분리합니다. 나는 for 루프에서 NULL 문자를 발견 할 수 있다는 것을 알고있다. 이것은 정말 불쾌하다. 이 작업을 수행하는 간단한 방법이 있습니까?

답변

2

당신은 split를 사용할 수 있습니다

 System.out.println(Arrays.asList(s.split("\\00"))); 
+0

네, 그게 내가 원하는 것입니다, 많은 감사합니다! – jfly

0

당신은 완전히 대체하기라는 방법을 사용할 수있다(). 사용하기가 아주 쉽습니다.

string.replaceAll("<the letter you want to replace>", ""); 

당신이 찾고있는 것이면 이것이 실제로 당신의 연기를 증가시키지 않을지라도 말입니다.