Мне нужно удалить некоторые символы из строкового конструктора, но по какой-то причине парочка не удаляется. Это то, что у меня есть до сих пор: у меня есть метод со строкой и arraylist в качестве параметров. Строка, которую я передаю, следующая: «beabeefeab», а arraylist содержит следующие 6 символьных комбинаций длины 2: ab, ae, af, be, bf, ef. Имя этого arraylist с комбо - arrayListCombos, и я прохожу через этот arraylist снаружи для цикла и получаю отдельные символы этой комбинации строк, чтобы я мог сравнивать отдельные символы со строковым символом в моей строковой архитектуре. Внутренний цикл - это пройти через строковый конструктор и сравнить modString.charAt (x) с firstChar, взятым из комбо. Посмотрите сначала на combo ab, firstChar = a и secondChar = b. Я могу удалить первый e из строки «beabeefeab», но два последовательных e не удаляются, и я получаю следующую строку: «babeeab», и я должен получить «babab» с удалением всех, кроме a и b. Может кто-нибудь помочь - я бы очень признателен.deleteCharAt() не удаляет символ в stringbuilder все внезапные в цикле
for(int w=0;w<arrayListCombos.size();w++){
String tempComboToKeep = arrayListCombos.get(w);
//split up char in combo and store independantly in order to compare
char firstChar = tempComboToKeep.charAt(0);
System.out.println("first char: "+firstChar);
char secondChar = tempComboToKeep.charAt(1);
System.out.println("second char: "+secondChar);
StringBuilder modString = new StringBuilder(s);
//System.out.println("here is stringbuilder before modify: "+modString.toString());
//walk through stringbuilder to find the individual chars and remove rest
for(int x=0;x<modString.length();x++){
//if first char is NOT equal to one of the combos, delete it
if (modString.charAt(x) != firstChar){
System.out.println("char not equal to firstChar: "+modString.charAt(x)+" "+firstChar);
//the char inside stringbuilder does not equal either of the combo chars so need to be removed
if (modString.charAt(x) != secondChar){
System.out.println("char not equal to secondChar either!!! " +
"DELETE this char from string builder: "+modString.charAt(x));
modString.deleteCharAt(x);
}
}
}