В языке Java для строковых полей типа String отсутствует метод удаления символа с указанным индексом (в C# это метод Remove). Поэтому, чтобы произвести удаление символа из строки в Java нужно пойти на некоторые ухищрения. Рассмотрим в данном уроке один из таких способов.
Удаление символа с помощью комбинации методов substring
В Java у строк есть метод substring(int startIndex, int endIndex), который возвращает подстроку из исходной строки с позиции startIndex (включительно) до endIndex (не включительно). Нумерация индексов начинается с нуля.
С помощью данного метода извлечём из исходной строки две подстроки до и после удаляемого элемента (его индекс обозначим, как deletePosition) и соединим их в одну. Тем самым в новой строке будет отсутствовать символ с индексом deletePosition.
Переведём данные рассуждения в код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public static void main(String[] args) { // исходная строка String s = "строка"; // тут будет строка с удалённым символом String newS = null; // номер символа для удаления int deletePosition = 2; // удаляем элемент try { newS = s.substring(0, deletePosition); newS += s.substring(deletePosition + 1); } catch(Exception ex) { } if (newS == null) newS = s; System.out.println((newS)); } |
В newS будем хранить новую строку без удаляемого символа.
Метод substring применяется два раза, чтобы «обойти» удаляемый символ.
Конструкция try-catch используется для перехвата ошибок, возникающих вследствие указания deletePosition равной индексу последнего элемента (соответственно первый метод substring будет выполнен, а второй сгенерирует исключение), а также указания deletePosition меньше нуля или больше или равной длины строки.
Если ни один из методов substring не будет выполнен, то есть значение newS останется равным null, а следовательно s не должна была быть изменена, то здесь придёт на помощь оператор if.
Вот таким образом в языке программирования Java можно удалить символ из строки. Конечно, существуют и другие варианты, но данный способ вполне применим на практике.
Поделиться в соц. сетях: