2017-11-07 10 views
0

文字列を1つ以上のNULL(U + 0000)で区切ってUTF16文字列を抽出しています。変換された文字列を出力すると自動的にNULLがトリミングされ、例えば、プログラムの出力は「WinWin」UTF16文字列をNULLで分割する簡単な方法

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

あなたがでReplaceAll(と呼ばれる方法を使用することができます)。それは使用するのが非常に簡単です。

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

あなたが探しているものがあれば、これは実際にあなたのパフォーマンスを上げることはできませんが、気にしてください。

関連する問題