O fai come suggerisce floyd, oppure qualcosa del genere (ma mi piaceva giocare un po' con String split...)
codice:import java.io.*; public class Nome { private String nome; private String cognome; private String luogodiNascita; public Nome(String n, String c, String l) { nome = n; cognome = c; luogodiNascita = l; } public String getNome() { return nome; } public String getCognome() { return cognome; } public String getLuogodiNascita() { return luogodiNascita; } public static void main(String arg[])throws Exception { Nome lista[] = new Nome[3]; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); for(int i=0; i<3; i++){ System.out.println("Dammi il nome"); String nome = br.readLine(); System.out.println("Dammi il cognome"); String cognome = br.readLine(); System.out.println("Dammi il luogo di nascita"); String luogo = br.readLine(); lista[i] = new Nome(nome,cognome,luogo); } String temp = "napoli"; String who = ""; //puro comodo per estrarre gli indici del vettore in cui luogoDiNascita() è temp for(int j=0; j<lista.length; j++){ if(temp.equals(lista[j].getLuogodiNascita())) { who +=j+","; } } if (who.length() > 1) { //se ne trova almeno uno nato a temp allora prosegue con la creazione della nuova lista String[] indici = who.split(","); Nome lista2[] = new Nome[indici.length]; for(int k=0; (k<indici.length) && (!indici[k].equals("")); k++){ lista2[k]=lista[Integer.parseInt(indici[k])]; } for (int k=0; k < lista2.length; k++) { System.out.println(lista2[k].getNome()+" "+lista2[k].getCognome()); } } else { System.out.println("nessuno presente con luogo di nascita = "+temp); } } }

)
Rispondi quotando