Der fehler ist aufgetreten weil readString nur bis zum leerzeichen einliest und in x dann nur "hallo" gespeichert ist also liefert split auch nur ein array mit einem eintrag zurück.
du solltest immer prüfen wie viele einträge ein array hat bevor du auf es zugreifst, never trust user data