Как конвертировать CharSequence в строку? - PullRequest
175 голосов
/ 10 октября 2011

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

Ответы [ 3 ]

311 голосов
/ 10 октября 2011

Используя метод toString().

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

87 голосов
/ 08 апреля 2013

Здесь есть небольшая проблема, которая немного напоминает ошибку.

Метод toString() имеет базовую реализацию в Object.CharSequence - интерфейс;и хотя метод toString() появляется как часть этого интерфейса, во время компиляции нет ничего, что заставило бы вас переопределить его и соблюдать дополнительные ограничения, которые Javadoc метода CharSequence toString() накладывает на метод 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();
14 голосов
/ 27 декабря 2017

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

String.valueOf(charSequence)

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

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

...