Serial.read() to string?

You need to wait for the string to finish by detecting a string terminated like a CR.
Only when the string is all in should you attempt to print it out.
You are thinking that if one byte of the string has arrive then they all have. They have not.