Salve.
Sto sviluppando una classe che da in pasto a NotazionePolacca.java degli interi e dei char per fare in modo di sviluppare l'espressione in notazione polacca.
Il seguente codice funziona perfettamente.
Ma se cerco di fare un programma analogo che però legga da tastiera l'espressione sembra che non venga fatto il cast da char a int.codice:import java.io.*; public class ProvaNotazionePolacca { public static void main (String args[]) throws IOException, EmptyListException { NotazionePolacca e = new NotazionePolacca(); e.aggiungi(10).aggiungi(45).aggiungi('+').aggiungi(20).aggiungi(17).aggiungi('-').aggiungi('*'); e.aggiungi(10).aggiungi(45); e.aggiungi('+'); System.out.println("Il valore dell'espressione e' "+e.Valore()+"\n"); } }
e mi da il seguente errore:codice:import java.io.*; public class ProvaNotazionePolacca { public static void main (String args[]) throws IOException, EmptyListException { NotazionePolacca e = new NotazionePolacca(); InputStreamReader input = new InputStreamReader(System.in); BufferedReader tastiera = new BufferedReader(input); System.out.print("Inserisci l'espressione: "); String s = tastiera.readLine(); for (int i=0 ; i < s.length() ; i++ ) { if (s.charAt(i)!=' ') { if (s.charAt(i)=='+' || s.charAt(i)=='-' || s.charAt(i)=='*' || s.charAt(i)=='/') e.aggiungi(s.charAt(i)); else e.aggiungi( ((Integer)s.charAt(i)).intValue()); } } System.out.println("Il valore dell'espressione e' "+e.Valore()+"\n"); } }
Grazie per l'interessamentocodice:C:\...\java\Stack\ProvaNotazionePolacca.java:50: inconvertible types found : char required: java.lang.Integer e.aggiungi( ((Integer)s.charAt(i)).intValue() );
P.S. si può fare qualcosa con StringTokenizer, se si come?


Rispondi quotando

