Meglio: come vedere se una parola si trova in una lista di tipo ArrayList.
Isoliamo il problema.
Creiamo un'ArrayList di stringhe con un elenco banale, i nomi dei sette nani.
ArrayListOra ho cercato su Google le parole chiave "matches" e "ArrayList", e ho trovato alcuni costrutti, interessanti da ricordare, che metto in pratica subito. In particolare, il metodo contains di ArrayList è molto utile allo scopo.lista=new ArrayList (); lista.add("Gongolo"); lista.add("Mammolo"); lista.add("Pisolo"); lista.add("Cucciolo"); lista.add("Dotto"); lista.add("Eolo"); lista.add("Brontolo");
public class MainActivity extends AppCompatActivity { Button button; ArrayList<String> lista; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button); lista=new ArrayList<String>(); lista.add("Gongolo"); lista.add("Mammolo"); lista.add("Pisolo"); lista.add("Cucciolo"); lista.add("Dotto"); lista.add("Eolo"); lista.add("Brontolo"); button.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View view) { if(lista.contains("Cuccolo")){ Toast.makeText(getApplicationContext(),"CONTIENE!",Toast.LENGTH_LONG).show(); }else{ Toast.makeText(getApplicationContext(),"NON CONTIENE!",Toast.LENGTH_LONG).show(); } } }); } }Cambiando "Cucciolo" in "Cuccolo", la risposta cambia: nel primo caso è "CONTIENE" mentre nel secondo è "NON CONTIENE".
Un altro costrutto è questo:
public class MainActivity extends AppCompatActivity { Button button; ArrayList<String> lista; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button); lista=new ArrayList<String>(); lista.add("Gongolo"); lista.add("Mammolo"); lista.add("Pisolo"); lista.add("Cucciolo"); lista.add("Dotto"); lista.add("Eolo"); lista.add("Brontolo"); button.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View view) { for(String s : lista){ if(s.equals("Cucciolo")) Toast.makeText(getApplicationContext(),"CONTIENE!",Toast.LENGTH_LONG).show(); else Toast.makeText(getApplicationContext(),"NON CONTIENE!",Toast.LENGTH_LONG).show(); } } }); } }Con questo costrutto posso ottenere risultati ingannevoli: se predispongo, come in questo caso, una risposta anche in caso di esito negativo, ottengo il risultato dell'ultimo elemento della lista esaminato, quindi posso avere una segnalazione di "non presente" se solo l'ultimo elemento esaminato è diverso da quello che io sto cercando.
Predisponendo solo la risposta in caso positivo, invece, ottengo una risposta pertinente.
Nessun commento:
Posta un commento