Если нормализация означает замену последовательностей пробелов, табуляции, новых строк и перевода строки, то я бы подумал об использовании простого регулярного выражения и String.split () для создания отдельных слов, а затем добавлял их в StringBuilder с пробелом 'Я хотел бы между ними.Если производительность действительно имеет значение, другой подход будет заключаться в том, чтобы просто зацикливаться на символах строки, просматривая каждый из них и решая, добавлять ли его в StringBuilder или отбрасывать его.