Necesito hacer un programa que evalue la sintaxis de una operacion introducida por el usuario. Por ejemplo: 2+2
No es necesario que me arroje el resultado, simplemente que evalue si esta correcto la forma en que el usuario introdujo la operacion, he realizado 3 funciones para evaluar cada caracter, si es Numero, Letra (por que el usuario puede introducir nombres de variables) y si es Operador, las funciones estan correctas (al menos a mi forma de entender), ahora lo que necesito es que me evalue si lo primero que se introdujo es numero o variable, luego el operador y por ultimo otro numero u otra variable ( num ope num ) que este en orden y si no que me indique el error o la posicion, estoy iniciando en el lenguaje, es por eso que pido ayuda, mi problema es que tengo la idea, pero no he podido plasmarla, aqui dejo el codigo que llevo hecho, si hay agluien me pueda ayudar o que me guie un poco se lo agradecere.
Código PHP:
import java.io.*;
public class Operacion
{
public static boolean esNumero(char numero)
{
int i = 0;
boolean existe = false;
char NUMERO[] = {'0','1','2','3','4','5','6','7','8','9'};
for(i = 0; i < NUMERO.length; i++)
{
if (numero==NUMERO[i])
{
existe = true;
break;
}
else
{
existe = false;
}
}
return existe;
}
public static boolean esOperador(char operador)
{
int i = 0;
boolean existe = false;
char OPERADOR[] = {'+','-','*','/'};
for(i = 0; i < OPERADOR.length; i++)
{
if (operador==OPERADOR[i])
{
existe = true;
break;
}
else
{
existe = false;
}
}
return existe;
}
public static boolean esVariable(char letra)
{
int i = 0;
boolean existe = false;
String LETRA = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
for(i = 0; i < LETRA.length(); i++)
{
if (letra==LETRA.charAt(i))
{
existe = true;
break;
}
else
{
existe = false;
}
}
return existe;
}
public static void main(String []args)
{
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
String expresion = "";
System.out.print("Ingresa una expresion: ");
try
{
expresion = buffer.readLine();
}
catch(IOException e)
{
System.err.println("Error" + e.getMessage());
}
}
}