Ciao a tutti,sono alle prese con questo esercizio,una rubrica che memorizza i contatti su un filetxt quindi scrittura e lettura da file e poi lo da il problema è nell'esecuzione perche devo inserire dei programmi solo che non so come scriverli e quali sono qualcuno potrebbe aiutarmi?!
codice:Rubrica1 public class Rubrica1 { String cognome; String nome; int telefono; boolean flag; public Rubrica1()//costr snz paramentri { String cognome; String nome; int telefono; boolean flag=false; } public Rubrica(String a,String b,int c) { nome=a; cognome=b; telefono=c; flag=true; } public String getNome() { return nome; } public String getCognome() { return cognome; } public int getTelefono() { return telefono; } public boolean getFlag() { return flag; } public static boolean controllanome(String no) { return no.matches("[AZ] [a-zA-Z]*"); } public static boolean controllacognome(String co) { return co.matches("[a-zA-Z]+(['-][a-zA-Z]+)+"); } public static boolean controllatelefono(String te) { return te.matches("\\d {10}"); }}codice:rubricatest import java.util.*; import java.io.*; public class RubricaTest { public static void main (String[] args) { Rubrica1 array[]= new Rubrica1 [100]; Scanner input=new Scanner(System.in); int pos=0; boolean entra=false; for(int i=0;i<array.length;i++) array[i]=new Rubrica1(); while(!entra) { System.out.printf("Digita 1 per creare un nuovo contatto,2per trovare un contatto,3per uscire dalla Rubrica"); int scelta =input.nextInt(); while( scelta>3 || scelta <1) { System.out.printf("Hai inserito un numero non valido"); scelta=input.nextInt(); } switch(scelta) { case 1: System.out.printf("Inserire il nome del contatto desiderato:\n"); String no=input.nextLine(); System.out.printf("Inserire il cognome del contatto desiderato:\n"); String co=input.nextLine(); System.out.printf("Inserire il numero di telefono del contatto desiderato:\n"); String te=input.nextLine(); //da cont System.out.printf("\nInserimento in corso....\n"); if (!Rubrica1.conmtrollanome(no)) System.out.println("Nome non corretto o troppo lungo"); else if (!Rubrica1.controllacognome(co)) System.out.println("Cognome non corretto o troppo lungo"); else if (!Rubrica1.controllatelefono(te)) array[pos]=new Rubrica1(no, co, te); if(pos<=99) pos++; break; case 2: System.out.printf("Inserisci il nome del contatto da cercare"); String nom=in.nextLine(); for (int i=0; i<array.length; i++) if (array[i].getflag && array[i].nome.equals(nom)) System.out.printf("I dati del contatto sono"+ array[i].nome + array[i].cognome + array[i].telefono + "\n" ); else System.out.printf("Il contatto non è presente nella rubrica"); break; case 3: entra=true; System.exit(1); break; } } stampa(); } public static void stampa() { try{ FileWriter file=new FileWriter ("elenco.txt"); Printwriter out=new Printwriter (file); for(int i=0; i<array.length;i++) out.print(array[i].nome + array[i].cognome + array[i].telefono + "\n"); } catch(IOException e) { System.out.println("Errore" + e); } finally { out.close(); } } }

Rispondi quotando