Как конвертировать CharSequence в строку?

Как преобразовать Java CharSequence в String?

Ответ 1

Вызов метода toString().

Возвращает строку, содержащую символы в этой последовательности, в том же порядке, что и эта последовательность. Длина строки будет длиной этой последовательности.

Ответ 2

Здесь есть тонкая проблема, которая немного важна.

Метод toString() имеет базовую реализацию в Object. CharSequence - интерфейс; и хотя метод toString() появляется как часть этого интерфейса, во время компиляции ничего не происходит, что заставит вас переопределить его и почитать дополнительные ограничения, которые метод CharSequence toString() javadoc ставит на метод toString(); т.е. он должен возвращать строку, содержащую символы в порядке, возвращаемом charAt().

Ваша IDE даже не поможет вам, напоминая, что вы, вероятно, должны переопределить toString(). Например, в intellij, это то, что вы увидите, если вы создадите новую реализацию CharSequence: http://puu.sh/2w1RJ. Обратите внимание на отсутствие toString().

Если вы полагаетесь на toString() на произвольном CharSequence, он должен работать, если исполнитель CharSequence выполнил свою работу должным образом. Но если вы хотите вообще избежать какой-либо неопределенности, вы должны использовать StringBuilder и append(), например:

final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();

Ответ 3

Вы можете напрямую использовать String.valueOf()

String.valueOf(charSequence)

Хотя это то же самое, что toString() он выполняет нулевую проверку charSequence перед фактическим вызовом toString.

Это полезно, когда метод может вернуть либо значение charSequence либо значение null.