You can create a String[] rather than Object[] by precreating the array with the correct size:
The final line of Lance Finney's solution works as well - I just hate creating that extra zero-length array when I don't have to.
Unfortunately Arrays.asList() creates a
fixed-length list - which means that removeAll() throws an UnsupportedOperationException.

. We can work around this by creating another List:
Of course, in the original question, "if I turn it to like arrStr2 neither use loop to remove the null nor rebuild a arrstr array" doesn't make much sense - there's no way to avoid "rebuilding" an array here, since the new array has a different size from the original. So I don't know if this answer is considered acceptable or not - but I'm not going to worry too much about it.
[ February 01, 2003: Message edited by: Jim Yingst ]