Visualizzazione dei risultati da 1 a 4 su 4

Discussione: problema con esercizio

  1. #1
    Utente bannato
    Registrato dal
    Nov 2008
    Messaggi
    9

    problema con esercizio

    Ciao a tutti ho un problema con un esercizio, praticamente non mi vengono restituiti errori, ma non riesco a far funzionare la parte dell'esercizio che mi chiede di verificare se la persona p risiede in una delle località memorizzate; penso di doverlo fare con equals, però non so se devo inserirlo in un ciclo.

    codice:
    public class EsamePersona {
    
    	public static void main(String[] args) {
    
    		Persona[] cittadini = new Persona[5];
    		cittadini[0] = new Persona("Giorgio", "Bianchi", "Torino");
    		cittadini[1] = new Persona("Gianni", "Neri", "Ivrea");
    		cittadini[2] = new Persona("Anna", "Rossi", "Chieri");
    		cittadini[3] = new Persona("Maria", "Bianchi", "Ivrea");
    		cittadini[4] = new Persona("Roberto", "Verdi", "Torino");
    
    		for (int i=0; i<cittadini.length; i++)
    			System.out.println(cittadini[i]);
    		System.out.println();
    
    
    //      L'array di stringhe, chiamato "citta", deve essere riempito
    //		con nomi di citta'.
    
    		String[] citta = ArrayUtil.readStringArray();
    		ArrayUtil.println(citta);
    
    // nel seguito si verifica se esiste almeno un cittadino che risiede in una delle citta'
    // elencate nell'array citta.
    		boolean unResidente = esisteResidente(cittadini, citta);
    		if (unResidente)
    			System.out.println("Esiste almeno un cittadino che risiede nelle citta' indicate");
    		else System.out.println("Non esiste alcun cittadino che risiede nelle citta' indicate");
    
    	} // fine main
    
    /** Il metodo statico
    
    		public static boolean esisteResidente (Persona[] persone, String[] luoghi)
    
    	verifica se esiste almeno una persona nell'elenco "persone" che
    	risiede in una delle citta' memorizzate nell'array "luoghi".
    
    	Per valutare se una determinata persona risiede o meno in una delle citta'
    	dell'array "luoghi", esisteResidente() utilizza il metodo
    		public boolean risiede(String[] leCitta)
    	offerto dagli oggetti della classe Persona
    	Sviluppare tale metodo nell'opportuna classe java.
    
    */
    
    	public static boolean esisteResidente (Persona[] persone, String[] luoghi) {
    		/* sviluppare il codice del metodo */
    		for (int i=0; i<persone.length; i++);
    				if (persone.equals(luoghi))
    		return true;
    		else return false;
    	}
    }
    codice:
     /** Classe Persona: descrive persone che abitano in una citta'.
     */
    
    public class Persona {
    
    	private String nome;
    	private String cognome;
    	private String citta;
    
     /** Costruttore di Default vuoto */
      public Persona() {
    
    		nome = " ";
    		cognome =" ";
    		citta =" ";
      }
    
     /** Costruttore con parametri*/
      public Persona(String nomeP,String cognomeP, String cittaP) {
    		nome = nomeP;
    		cognome = cognomeP;
    		citta = cittaP;
      }
    
      public String getNome () {
    		return nome;
      }
    
      public String getCognome() {
    	  return cognome;
      }
    
      public String getCitta() {
    	  return citta;
      }
    
      public String toString() {
    	  return "Nome : " + nome + " Cognome : " + cognome
    		     + " citta' di residenza : " + citta;
      }
    
    /** il metodo
    
        		public boolean risiede(String[] leCitta)
    
        	verifica se la persona p risiede in una delle localita' memorizzate
        	nell'array leCitta. In caso positivo, il metodo restituisce true; false altrimenti.
    
        	Per esempio, si supponga che l'array leCitta contenga
        	i seguenti nomi di citta: Roma, Torino, Milano.
        	Se p risiede a Torino, il metodo restituisce true.
        	Se invece p risiede a Genova, il metodo restituisce false.
        */
    
    
        	public boolean risiede(String[] leCitta) {
    
        		/* sviluppare il codice del metodo */
        		String p;
        		p = citta;
        	for (int i=0; i<leCitta.length; i++);
        		leCitta.equals(p);
    			return true;
    }
    }// fine definizione classe

  2. #2
    Premesso che non mi è proprio chiaro quello che stai facendo, prova a fare queste modifiche:

    public static boolean esisteResidente (Persona[] persone, String[] luoghi) {
    for(i=0; i<persone.length; i++) {
    if(persone[i].risiede(luoghi))
    return true;
    }
    return false;
    }

    .........................................

    public boolean risiede(String[] leCitta) {
    /* sviluppare il codice del metodo */
    String p = citta;
    for (int i=0; i<leCitta.length; i++){
    if(leCitta[i].equals(p))
    return true;
    }
    return false;
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    18
    prova così:

    codice:
        	public boolean risiede(String[] leCitta) {
             
        	  /* sviluppare il codice del metodo */
        	 for (int i=0; i<leCitta.length; i++){
        		if(leCitta[i].equals(this.citta)){
                        return true;
             }
    
             return false;
    }
    se non vuoi fare distinzione di maiuscole e minuscole puoi usare equalsIgnoreCase

    ciao

  4. #4
    Utente bannato
    Registrato dal
    Nov 2008
    Messaggi
    9
    Grazie... Finalmente funziona !!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.