Donbabbeo
06-02-2009, 15:28
L'esercizietto è facilissimo, io gli do in pasto una stringa tramite una textfield e questa classe dovrebbe tirarmi fuori una stringa che concateni consonanti e vocali separatamente. Purtroppo non funziona, arriva fino al confronto e qua mi fallisce miseramente, restituendomi un simpaticissimo Java.Lang.NullPointerException.
Qualcuno riesce a risalire all'arcano? Ho provato di tutto, ho letto di tutto, ma non ho trovato nulla che mi aiutasse. A me sembra tutto corretto e terribilmente logico, ma c'è qualcosa che non mi torna.
Potete darmi una mano?
public String calcolaNome(String stringa) {
String consonanti = null;
String vocali = null;
String temp = null;
int lunghezza;
lunghezza = stringa.length();
System.out.println("LUNGHEZZA: " + lunghezza);
System.out.println("STRINGA: " + stringa);
for(int i = 0; i < lunghezza; i++) {
System.out.println("CARATTERE: " + stringa.substring(i, i+1));
temp = stringa.substring(i, i+1);
System.out.println("TEMP: " + temp);
//FINO A QUA GIRA, POI NULLPOINTER EXCEPTION
if (isVocale(temp) == true) {
System.out.println("VOCALI: " + vocali);
vocali.concat(temp);
}
else {
consonanti.concat(temp);
System.out.println("CONSONANTI: " + consonanti);
}
}
return consonanti.concat(vocali);
}
public boolean isVocale(String stringa) {
if (stringa.equals("a") == true) {
return true;
}
else {
return false;
}
}
PS: la classe che si occupa di calcolare la vocale attualmente fa il confronto con la sola lettera "a". Prendetelo per buono, ma inserire tutti e 10 i campi e doverli cambiare ogni volta non mi andava :asd:
Qualcuno riesce a risalire all'arcano? Ho provato di tutto, ho letto di tutto, ma non ho trovato nulla che mi aiutasse. A me sembra tutto corretto e terribilmente logico, ma c'è qualcosa che non mi torna.
Potete darmi una mano?
public String calcolaNome(String stringa) {
String consonanti = null;
String vocali = null;
String temp = null;
int lunghezza;
lunghezza = stringa.length();
System.out.println("LUNGHEZZA: " + lunghezza);
System.out.println("STRINGA: " + stringa);
for(int i = 0; i < lunghezza; i++) {
System.out.println("CARATTERE: " + stringa.substring(i, i+1));
temp = stringa.substring(i, i+1);
System.out.println("TEMP: " + temp);
//FINO A QUA GIRA, POI NULLPOINTER EXCEPTION
if (isVocale(temp) == true) {
System.out.println("VOCALI: " + vocali);
vocali.concat(temp);
}
else {
consonanti.concat(temp);
System.out.println("CONSONANTI: " + consonanti);
}
}
return consonanti.concat(vocali);
}
public boolean isVocale(String stringa) {
if (stringa.equals("a") == true) {
return true;
}
else {
return false;
}
}
PS: la classe che si occupa di calcolare la vocale attualmente fa il confronto con la sola lettera "a". Prendetelo per buono, ma inserire tutti e 10 i campi e doverli cambiare ogni volta non mi andava :asd: