I have string which contains null character ie \0. How can I print the whole string in java?
String s = new String("abc\u0000def");
System.out.println(s.length());
System.out.println(s);
Output on eclipse console:
7
abc
Length is that of complete string, but how can I print the whole string?
UPDATE: I am using
Eclipse Helios Service Release 2
Java 1.6
解决方案
If Eclipse won't cooperate, I'd suggest replacing the null characters with spaces before printing:
System.out.println(s.replace('\u0000', ' '));
If you need to do this in a lot of places, here's a hack to filter them from System.out itself:
import java.io.*;
...
System.setOut(new PrintStream(new FilterOutputStream(
new FileOutputStream(FileDescriptor.out)) {
public void write(int b) throws IOException {
if (b == '\u0000') b = ' ';
super.write(b);
}
}));
Then you can call System.out methods normally, with all the data going through the filter.