Ma questo non centra con i tuoi conteggi/test. Hai usato la concatenazione delle stringhe e semplicemente viene invocato toString() sul tuo stringa1 (per ottenere un String da concatenare).Originariamente inviato da skud
però invece di stamparmi la variabile, mi da il suo indirizzo
Ma nella tua classe Uguali NON hai ridefinito toString(), che rimane quindi quello ereditato da Object che ritorna quella forma particolare che hai visto.
Semplice: ridefinisci public String toString() { ....... }
Ma questo per un motivo: hai un Character e ci invochi equals passandogli un String. Ed è sbagliato (per il equals di Character!)Originariamente inviato da skud
e di conseguenza il metodo booleano isCaratteriUguali() sarà sempre false.
Quindi o fai:
if (c.toString().equals(c.toString().toUpperCase())
oppure potresti anche evitare tutti i giri di conversioni (ne fai troppe, da char -> Character, poi al fondo da boolean -> Boolean). Evita.
E comunque ci sarebbe lo stesso un problema di fondo: 1 _ 3 li tratti come "upper" perché toUpperCase non li cambia.