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



Как я могу конвертировать Java CharSequence до String?

672   3  

3 ответов:

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

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

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

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

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

String.valueOf(charSequence)

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

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

Comments

    Ничего не найдено.