Как преобразовать Java CharSequence
в String
?
Как конвертировать CharSequence в строку?
Ответ 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
.