Нет обратного метода в классе String в Java?

Почему нет обратного метода в классе String в Java? Вместо этого метод reverse () предоставляется в StringBuilder ? Есть ли для этого причина? Но String имеет split () , regionMatches () и т. д., которые более сложны, чем метод reverse () .

Когда они добавили эти методы, почему бы не добавить reverse () ?

16
задан Rob Hruska 27 September 2011 в 12:52
поделиться

2 ответа

Как примечание: в Scala вы используете тот же класс java.lang.String и получаете метод reverse (наряду со всеми другими полезными вещами). То же самое происходит с неявными преобразованиями , так что ваш String автоматически преобразуется в класс, который имеет метод reverse. Это действительно довольно умно, и устраняет необходимость раздувать базовый класс сотнями методов.

0
ответ дан 30 November 2019 в 17:36
поделиться

reverse () действует на this , изменяя текущий объект, а объекты String неизменны - их нельзя изменить.

Особенно эффективно делать reverse () in situ - размер, как известно, одинаков, поэтому никакого выделения не требуется, итераций цикла вдвое меньше, чем было бы в копия, и, для больших строк, локальность памяти является оптимальной. Посмотрев на код, можно увидеть, что для его ускорения были предприняты большие усилия. Я подозреваю, что автор (ы) имел в виду конкретный вариант использования, который требовал высокой производительности.

-1
ответ дан 30 November 2019 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: