Java - сортировка
Всем здравствуйте, есть проблема. Я пишу Discord бота, и возникла потребность получить все каналы на сервере. Но есть проблема, они получаются, но в List'e. При этом, вывод будет таким:
[GC:Text Channels(728238503908999259), TC:general(728238503908999261), GC:Voice Channels(728238503908999260), VC:General(728238503908999263), GC:lox(728238532560158732), TC:test(728238545646649394)]
Большое количество информации мне здесь попросту не нужно, а нужен лишь ID канала, это цифры, а конкретно: [GC:Text Channels(вот_этот_самый_ID_728238503908999259). И мне нужно извлечь ID сразу всех каналов, и не известно, сколько их будет. Можно ли это как то реализовать?
Ответы (2 шт):
Примерно так
List<Integer> ids = someList.stream()
.map(Channel::getId)
.collect(Collectors.toList());
Надо только ссылку на метод получения идентификатора подставить актуальную.
Я так понимаю, что исходные данные в коллекции стрингов, а не объектов и парсить нужно именно стринг. Тогда так:
public static List<Long> main(List<String> list) {
return list.stream()
.map(s -> s.substring(s.indexOf("(")+1, s.indexOf(")")))
.map(Long::valueOf)// если нужен ID в переменных типа Long
.collect(Collectors.toList());
}