improve StringUtil