Originariamente inviato da Agrigentine
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?!
Beh, intanto vedo svariati errori/mancanze nel tuo codice. Poi comunque non ho ben capito la tua frase "perche devo inserire dei programmi solo che non so come scriverli". Scrivere cosa?? Intendi dire come compilare/lanciare il tuo programma da linea di comando???

Comunque un passo per volta. Vediamo gli errori e i problemi nel tuo codice:

Nella classe Rubrica1:
- Le variabili di "istanza" sarebbe meglio metterle 'private'.

- Nel costruttore senza argomenti hai dichiarato 4 variabili locali uguali alle variabili di istanza .... per quale motivo non lo so ..... (e non servono a nulla).

- Il secondo costruttore l'hai chiamato Rubrica mentre invece dovrebbe essere Rubrica1.

- Generalmente, secondo le convenzioni standard, è bene mettere i parametri di costruttori e metodi setter relativi alle proprietà con lo stesso nome delle variabili di istanza. Proprio per non doversi "inventare" altri nomi come 'a', 'b' ecc... che dicono molto poco:

codice:
public Rubrica1(String nome, ....blabla....) {
    this.nome = nome;
    .....
}
- La regex per controllare il telefono non fa quello che vorresti. C'è uno spazio tra \\d e {10}. Devi metterli attaccati se vuoi "esattamente 10 digit". Pure in quella per il controllo del nome c'è uno spazio ... e probabilmente non è quello che volevi.


Nella classe RubricaTest:
- Fai un test: else if (!Rubrica1.controllatelefono(te)) e il "corpo" è l'assegnamento array[pos]=new Rubrica1(no, co, te);
Ma sicuramente non è quello che intendevi. Se non è corretto il telefono devi mettere un'altra println() come quelli sopra.

- stampa() non è corretta.
--- Usi 'array' ma array non è visibile ... è una variabile locale nel main()!!
--- Nel finally usi 'out' ... solo che out lì non è visibile perché è locale nel blocco del try!!
--- Non usare print() per poi mandare in output espressamente \n. Usa println().
--- Poi nome/cognome/telefono li stampi tutti attaccati e comunque accedi direttamente ai campi mentre invece sarebbe preferibile farlo attraverso i "getter".


Come vedi gli errori/problemi sono parecchi. Quindi controlla e verifica bene tutto. Il tuo codice, così come è, non può compilare correttamente.


Alcuni suggerimenti generali. Abituati fin da ora a:
- Scrivere il codice ben spaziato e sopratutto indentato.
- Usare sempre { .... } per if/for anche se contenenti come "corpo" una sola istruzione.
- Usare nomi per variabili e metodi che seguono le convenzioni "standard". Ad esempio controllaTelefono() ... non controllatelefono().