Группа символов между /* и */ в строке
мне нужно закончить код, так сказать, мне надо сделать массив в котором будут группы символов между /* */ , но при этом не использовать регулярные выражение, у меня код почти закончен, но не при этом, я не могe поместить группы в массив...
int start =0;
int end=0;
int c=0;
String[] result = str.split("");
for (char i : str.toCharArray()) {
if (result[i].equals("/")&& result[i+1].equals("*") ) {
start=i;
c++;
}
if (result[i].equals("*")&& result[i+1].equals("/") ) {
end=i;
}
}
String[] text=new String[c];
Мне надо, чтоб группы были в другом массиве, чтоб, я мог уже с ними работать отдельно от строки, где мы их взяли.
String str="jdsdjsjsjsdjsdsjds/1группа/jajsjjajajssja/2группа/sjajajasjsajs";
если говорить грубо, то должен быть массив такой исходя из строки:
String [] arr={"1группа","2группа"};
Мне надо, чтоб группы были в другом массиве, чтоб, я мог уже с ними работать отдельно от строки, где мы их взяли.
String str="jdsdjsjsjsdjsdsjds/*1группа*/jajsjjajajssja/*2группа*/sjajajasjsajs";
если говорить грубо, то должен быть массив такой исходя из строки:
String [] arr={"1группа","2группа"};
Ответы (1 шт):
Автор решения: Chubatiy
→ Ссылка
String str="jdsdjsjsjsdjsdsjds/*1группа*/jajsjjajajssja/*2группа*/sjajajasjsajs";
//разбиваем строку
List<String> groups = Arrays.stream(str.split("/"))
//отбираем начинающиеся на *
.filter((s) -> s.startsWith("*"))
//отбираем заканчивающиеся на *
.filter((s) -> s.endsWith("*"))
//Убираем символ *
.map((s) -> s.replace("*", ""))
//Собираем в список
.collect(Collectors.toList());