Как в String incrypt = "qwerty12345"; удалить нужные по очереди символы допустим 2,6?

Как в String incrypt = "qwerty12345";

удалить нужные символы допустим 2,6 !


Ответы (2 шт):

Автор решения: Sergei Buvaka

Есть прекрасная функция в стандартной библиотеке Java:

String substring(int beginIndex, int endIndex)

Пример:

incrypt.substring(1, removableIndex) + incrypt.substring(removableIndex + 1); 

Так же вы можете использовать StringBuilder:

StringBuilder sb = new StringBuilder(incrypt);
sb.deleteCharAt(removableIndex);
sb.toString();
→ Ссылка
Автор решения: Mardanov Asif

Строки в Java это больная тема. Так как строка в Java является полноценным объектом, то, каждая манипуляция со строкой [использование встроенных методов/функций] приводит к тому, что строка не перезаписывается, а по сути - пересоздается заново. По времени это просто кошмар.

Самый простой способ убрать нужные символы в строке, без использования посторонних функций/методов и знаний - пройтись по всей строке и проверять каждый символ на удовлетворение Вашим условиям.

//наша исходная строка
String incrypt = "qwerty12345";

//создаем новую строку, которая будет содержать конечный ответ
String tempText;
        
//начальная инициализация
tempText = "";
        
//пробегаемся по всем символам в нашей исходной строке и проверяем на условия
//например, удалим символы '2' и '6'
for(int i = 0; i < incrypt.length(); i++)
    if(incrypt.charAt(i) != '2' && incrypt.charAt(i) != '6')
        tempText += incrypt.charAt(i);

tempText будет содержать конечный вариант строки, которая нам нужна.

Можно использовать и встроенные методы/функции, но, они в большинстве своем требуют указания индекса символа, который мы хотим удалить. В итоге, нам придется каждый раз пробегаться по всей строке и искать индекс каждого удаляемого символа, а потом для каждого символа вызывать отдельный метод для удаления символа из строки. Это затратно во времени.

→ Ссылка