Per un primo esame di programmazione ad oggetti in Java la professoressa ha fatto in classe il seguente esercizio: scrivere una classe chiamata GestoreStringhe che contiene una serie di metodi utili per operare sulle stringhe, come: invertiStringa, verificaPalindromia, etcetc...
Io l'ho scritta commentandola e studiandomela...ma quando vado a compilarla il compilatore mi dà una serie di errori...in parte li ho risolti..ma questi che rimangono non riesco a risolverli...vi posto quà il codice della classe e l'elenco degli errori:
Classe GestoreStringhe:
ERRORI:codice:/* La classe GestoreStringhe è un contenitore di metodi utili per operare sulle stringhe */ public class GestoreStringhe{ /* Metodo che prende due stringhe: nome e cognome; e che le unisce separandole con uno spazio e mettendo in maiuscolo le due iniziali ed in minuscolotutto il resto. Es: nome: "maRiO", cognome: "rOSsi" --> s = "Mario Rossi" */ public static String trasformaInUna(String nome, String cognome){ String s; s = nome.substring(0,1).toUppercase(); s += nome.substring(1).toLowercase(); s += " "; s += cognome.substring(0,1).toLowercase()+cognome.substring(1).toLowercase(); return s; } /* Metodo che permette di invertire la stringa che prende come parametro. Es: Se il metodo viene invocato con la stringa S="Roma", esso restituirà il riferimento all'oggetto di tipo String il cui valore è "amoR" */ public static String invertiStringa(String s){ String t; // Stringa da restituire che conterrà l'inversa della stringa s int i; // Variabile contatore t = 0; // Inizializzazione: se s è vuota allora verrà restituita la stringa vuota /* Ciclo che copia in t i caratteri di s a partire dall'ultimo fino al primo */ for(i=s.length()-1; i>=0; i--){ // Per i che parte dalla lunghezza di s meno 1 fino ad aver letto tutti i caratteri t += s.substring(i,i+1); // Concatena a t l'i-esimo carattere di s } return t; } /* Metodo che permette di verificare se la stringa che prende come parametro è una stringa palindroma restituendo TRUE se è vero, FALSE al contrario. Es: S = "ama" --> restituisce TRUE, S = "ciao" --> restituisce FALSE */ public static boolean verificaPalindromia(String s){ String t; // Conterrà la stringa invertita t = invertiStringa(s); // Inverte la stringa s e la mette in t return s.equals(t); // Restituisce il risultato del test di uguaglianza tra s e t che può essere TRUE o FALSE } /* Metodo che permette di calcolare il prefisso comune delle due stringhe che prende come parametro */ public static String calcolaPrefissoComune(String s, String t){ int i, min; boolean trovato; // Diventa TRUE quando si trova un carattere diverso fra s e t String pref; if(s.length() < t.length()) min = s.length(); else min = t.length(); trovato = false; // Inizializzazione della variabile trovato a false poichè non è ancora stato trovato un carattere diverso fra s e t pref = ""; // Inizializzazione delle string pref con la stringa vuota, il prefisso comune è inizialmente nullo i = 0; // Inizializzazione il contatore a 0 while((i<min) && (!trovato)){ // Finchè il contatore è minore del possibile prefisso e non è stato ancora trovato un carattere diverso fra s e t if(s.substring(i,i+1).equals(t.substring(i,i+1))){ // Se l'i-esimo carattere delle 2 stringhe è uguale pref += s.substring(i,i+1); // Concatena a pref l'i-esimo carattere comune alle 2 stringhe i++; // Incrementa di uno il contatore per andare a testare il prossimo carattere } else trovato = true; // Altrimenti impostra trovato a true } return pref; // Restituisci il prefisso comune trovato } }
C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>javac TestGestoreStringhe.java
TestGestoreStringhe.java:11: cannot find symbol
symbol : method trasformaInUna(java.lang.String,java.lang.String)
location: class TestGestoreStringhe
String nomecognome = trasformaInUna(nome, cognome);
^
TestGestoreStringhe.java:13: cannot find symbol
symbol : method invertiStringa(java.lang.String)
location: class TestGestoreStringhe
String inversa = invertiStringa(a);
^
TestGestoreStringhe.java:15: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana1 = verificaPalindromia(a);
^
TestGestoreStringhe.java:17: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana2 = verificaPalindromia(c);
^
TestGestoreStringhe.java:19: cannot find symbol
symbol : method calcolaPrefissoComune(java.lang.String,java.lang.S tring)
location: class TestGestoreStringhe
String prefissocomune = calcolaPrefissoComune(a, b);
^
5 errors
C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>
Poi ho realizzato anche una classe TestGestoreSTringhe che contiene il main e dove testo i metodi scritti nella classe GestoreStringhe...anche quà ho degli errori...quando provo a compilare questa classe il compilatore è come se non vedesse i metodi definiti nella classe GestoreStringhe:
ERRORI:codice:class TestGestoreStringhe{ /* Il metodo main è necessariamente un metodo di classe */ public static void main(String[] args){ String a = "Ciao"; String b = "CiaoMondo"; String c = "AMA"; String nome = "maRiO"; String cognome = "roSSi"; String nomecognome = trasformaInUna(nome, cognome); String inversa = invertiStringa(a); boolean varbolleana1 = verificaPalindromia(a); boolean varbolleana2 = verificaPalindromia(c); String prefissocomune = calcolaPrefissoComune(a, b); } }
C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>javac TestGestoreStringhe.java
TestGestoreStringhe.java:11: cannot find symbol
symbol : method trasformaInUna(java.lang.String,java.lang.String)
location: class TestGestoreStringhe
String nomecognome = trasformaInUna(nome, cognome);
^
TestGestoreStringhe.java:13: cannot find symbol
symbol : method invertiStringa(java.lang.String)
location: class TestGestoreStringhe
String inversa = invertiStringa(a);
^
TestGestoreStringhe.java:15: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana1 = verificaPalindromia(a);
^
TestGestoreStringhe.java:17: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana2 = verificaPalindromia(c);
^
TestGestoreStringhe.java:19: cannot find symbol
symbol : method calcolaPrefissoComune(java.lang.String,java.lang.S tring)
location: class TestGestoreStringhe
String prefissocomune = calcolaPrefissoComune(a, b);
^
5 errors
C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>
Da che può dipendere tutto ciò?Come posso risolvere?
Grazie
Andrea

Rispondi quotando
