Saludos, si lo comprendo, y si tengo mi codigo, pero no hace la comparacion con los tokens que tengo, si alguien me pudiera ayudar, aqui dejo el codigo:
import java.io.*;
public class leer
{
public static void main(String[] args)
{
String aux= null;
String num [] = null;
char caract[] = null;
FileReader entrada=null;
StringBuffer str=new StringBuffer();
try {
InputStreamReader isr=new InputStreamReader (System.in);
BufferedReader br=new BufferedReader (isr);
String cadena;
System.out.println("Nombre del archivo:");
cadena= br.readLine();
entrada=new FileReader(cadena);
int c;
while((c=entrada.read())!=-1){
str.append((char)c);
}
System.out.println(str);
System.out.println("--------------------------------------");
}catch (IOException ex) {
System.out.println("error... no se encontro el archivo");
}finally{
}
caract = new char[str.length()];
num=new String[str.length()];
int i=0, j=0;
for (int k=0;k<str.length();k++)
caract[k]=str.charAt(k);
while (i<str.length())
{
switch (caract)
{
case '.':
num[j]=caract+"115";
case ',':
num[j]=caract+"65";
case ';':
num[j]=caract+"40";
case '-':
num[j]=caract+"100";
case '*':
num[j]=caract+"105";
case '/':
num[j]=caract+"110";
case '%':
num[j]=caract+"90";
case '(':
num[j]=caract+"70";
case ')':
num[j]=caract+"75";
case '=':
{
if (caract[i+1]=='=')
{
num[j]=caract+caract[i+1]+"30";
i++;
}
else
num[j]=caract+"26";
}
case '+':
num[j]=caract+"95";
case '>':
{
if (caract[i+1]=='=')
{
num[j]=caract+"60";
i++;
}
else
num[j]=caract+"50";
}
case '<':
{
if (caract[i+1]=='=')
{
num[j]=caract+"55";
i++;
}
else
num[j]=caract+"45";
}
case '#':
num[j]=caract+"80";
case '&':
num[j]=caract+"85";
}
if (caract>='0' && caract<='9')
{
while (caract[i+1]>='0' && caract[i+1]<='9')
{
num[j]=caract+caract[i+1]+"25";
i++;
}
num[j]=caract+"25";
}
if (caract>='a' && caract<='z'||caract>='A' && caract<='Z')
{
while (caract[i+1]>='a' && caract[i+1]<='z'||caract[i+1]>='A' && caract[i+1]<='Z')
{
num[j]=caract+caract[i+1]+"20";
i++;
}
if (num.compareTo("INICIO")==0)
num[j]=num[j]+"1";
if (num.compareTo("LEER")==0)
num[j]=num[j]+"2";
if (num.compareTo("MIENTRAS")==0)
num[j]=num[j]+"4";
if (num.compareTo("PARA")==0)
num[j]=num[j]+"5";
if (num.compareTo("CONST")==0)
num[j]=num[j]+"6";
if (num.compareTo("SI")==0)
num[j]=num[j]+"7";
if (num.compareTo("LLAMAR")==0)
num[j]=num[j]+"8";
if (num.compareTo("PROC")==0)
num[j]=num[j]+"9";
if (num.compareTo("ESCRIBIR")==0)
num[j]=num[j]+"10";
if (num.compareTo("FIN")==0)
num[j]=num[j]+"15";
num[j]=caract+"61";
}
else
num[j]="caracter no valido";
i++;
j++;
}
for (int k=0;k<num.length;k++)
{
aux=aux+num[k]+"";
}
System.out.println(aux);
}
}