if needle is " ", the length is 1 because there is a char space the ASCii code of which is 32.
If needle is "", the length is 0 because it contains nothing at all.
You can find that they are not the same thing.
if needle is "", it takes one address in the storage.
if needle is null, it doesn't take any address in the storage.