次の内容のバイナリ ファイルがあるとします。
abc\0def\0ghi\0
コンテンツはすでに読み取られ、文字列変数 s に格納されています。コンポーネント「abc」、「def」、「ghi」を異なる文字列トークンに抽出するにはどうすればよいですか? split、stringTokenizer などの通常のメソッドは\0
区切り文字として受け入れません。
\0
はnull 文字であるため、その Unicode 表現を区切り文字として使用できます。
String content = "abc\0def\0ghi\0";
String[] components = content.split("\u0000");
ただし、区切り文字として「\0」のみを使用して分割することもできます。
元の文字列が次の"abc\\0def\\0ghi\\0"
場合は、次を使用できますsplit("\\\\0")
。
"abc\\0def\\0ghi\\0".split("\\\\0")
元の文字列が次の"abc\0def\0ghi\0"
場合は、次を使用できますsplit("\0")
。
"abc\0def\0ghi\0".split("\0")