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();
}
}
}