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.
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");
}
}
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();
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");
}
}
e mi da il seguente errore:
codice:
C:\...\java\Stack\ProvaNotazionePolacca.java:50: inconvertible types
found : char
required: java.lang.Integer
e.aggiungi( ((Integer)s.charAt(i)).intValue() );
Grazie per l'interessamento
P.S. si può fare qualcosa con StringTokenizer, se si come?