Czy istnieje w JAVIE sposób na uzyskanie z ArrayList pozycji Stringa, zawierającego określoną frazę?
0
0
Tak. Musisz przeiterować (bezpośrednią pętlą lub strumieniem) po liście i sprawdzić każdego Stringa z osobna.
0
Możesz zrobić to tak:
List<String> strings = Arrays.asList("qwerabcuiop", "asdfg", "lkjh");
Optional<Integer> option = strings.stream()
.filter(s -> s.contains("abc"))
.findAny()
.map(strings::indexOf);
if(option.isPresent()) {
int position = option.get();
System.out.println(position);
} else {
//Brak takiego stringa w liście.
}
0
Tutaj to samo co wyżej, tylko że zrobione dzięki pętli
ArrayList<String> strings = new ArrayList<String>();
strings.add("qwerabcuiop");
strings.add("asdfg");
strings.add("lkjha");
for(int i = 0; i < strings.size(); i++) {
if(strings.get(i).contains("asd")){
System.out.println(strings.get(i));
}
}
0
Dzięki za odpowiedzi.
Glodi, w Twojej pętli trzeba jeszcze dodać pobranie pozycji. I chyba w tym miejscu można wykorzystać IndexOf. Wydaje mi się, że przedstawiony niżej sposób będzie najprostszy.
ArrayList<String> strings = new ArrayList<String>();
strings.add("Ala ma kota");
strings.add("Ola ma dwa koty");
strings.add("Wszystkie trzy wkuuuurzają Asa");
for(int i = 0; i < strings.size(); i++)
{
if(strings.get(i).contains("dwa koty"))
{
System.out.println(strings.indexOf(strings.get(i)));
}
}