У меня есть строка со значением как || HelpDesk || ИТ-персонал || ИТ-персонал || Администратор || Аудит || HelpDesk ||Как удалить повторяющиеся значения в строке с разделителями
Я пытаюсь написать код, который должен удалять дубликаты и возвращать уникальные значения, сохраняющие такие демилитаторы, как это || HelpDesk || IT Staff || Admin || Audit ||
Мой код использует HashSet для удаления дубликатов, но проблема заключается в удалении разделителей. Как сохранить разделители, удалив только повторяющиеся значения.
Ниже мой код после удаления дубликатов и добавления разделителей. Но не уверен, есть ли простой способ сделать это.
public static void main(String[] args) {
TestDuplicates testDuplicates = new TestDuplicates();
String bRole = "||HelpDesk||IT Staff||IT Staff||Admin||Audit||HelpDesk||";
List<String> listWithoutDuplicates = new ArrayList<String>();
String noDup = "";
List<String> splittedStringList =
new ArrayList<String>();
SplitOperations splitOperations =
new SplitOperations();
splittedStringList =
splitOperations.splitString(bRole);
for (int i = 0; i < splittedStringList.size(); i++) {
HashSet<String> listToSet = new HashSet<String>(splittedStringList);
listWithoutDuplicates = new ArrayList<String>(listToSet);
}
for(int i=0;i<listWithoutDuplicates.size();i++){
noDup = noDup + "||"+listWithoutDuplicates.get(i);
System.out.println(listWithoutDuplicates.get(i));
}
System.out.println("No Duplicate is::"+ noDup+"||");
}
Благодаря
Разделить строки на '' || (вы должны избегайте этих символов tho или используя 'Pattern.quote'). Вы можете вернуть разделитель при построении String из элементов в Set. –
Можем ли мы знать, что вы пробовали до сих пор? – SMA
Рассмотрите возможность добавления разделителей обратно после извлечения уникальных элементов из HashSet. – user314104