Как работать с конкретными позициями строки в Java? - PullRequest
0 голосов
/ 24 июня 2011

Мне нужно удалить некоторые символы в определенных позициях строки в Java.

Есть ли что-то, эквивалентное std::string.erase() из C ++ в Java?Если нет, может кто-нибудь показать мне быстрый пример того, как зацикливаться на каждом символе строки, чтобы я мог сосчитать их и получить позицию каждого.

Ответы [ 6 ]

2 голосов
/ 24 июня 2011

Поскольку String само является неизменным, нет тривиального способа сделать это.

Вы можете использовать substring для создания нового String: orig.substring(0, index1) + orig.substring(index2).

Однако, если вы выполняете многократные манипуляции со строками, то StringBuilder может быть лучше, как по производительности , так и по причинам удобства использования:

StringBuilder b = new StringBuilder(orig);
b.replace(index1, index2, "");

StringBuilder в значительной степени изменчивый эквивалент String. Более ранние версии использовали StringBuffer, который имеет точно такие же методы, но синхронизирован, что обычно не требуется.

2 голосов
/ 24 июня 2011

Вы не сможете изменить сам объект String, поскольку Strings неизменны в Java, однако вы можете сгенерировать новый объект String, основанный на удалении символов из старого String. * 1005. *

В качестве альтернативы, если вы работаете с чем-то вроде StringBuilder / StringBuffer, это становится возможным, поскольку эти классы предоставляют a delete(start,end) функцию

Да, и поскольку вы спрашивали об управлении символами в String, существует метод length(), который дает вам длину String, а также charAt(position).

2 голосов
/ 24 июня 2011
1 голос
/ 24 июня 2011

Вот учебник по манипуляции со строками в Java: Манипуляции со строками

Вы также можете посмотреть на это: Java - String Class

1 голос
/ 24 июня 2011

Начните с документации .

Существует множество хороших методов, которые помогут вам получить индекс символов (indexOf) и подстрок (substring)

После просмотра документации по стиранию в c ++ кажется, что вы можете использовать 2 вызова substring для имитации этого поведения.Возможно, вы захотите создать класс StringUtils и реализовать свое собственное стирание на основе желаемого API.Обратите внимание, что строки в java неизменны, поэтому вы не можете точно продублировать это поведение - каждая операция над строкой, которая изменяет строку, возвращает новую строку.

0 голосов
/ 24 июня 2011

Подсчет символов можно выполнить с помощью метода toCharArray() (http://download.oracle.com/javase/6/docs/api/java/lang/String.html#toCharArray()).

Для более сложных манипуляций со строками (стирание и т. Д.) Вам следует использовать StringBuilder / StringBuffer (http://download.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html#deleteCharAt(int))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...