package transiciones;
import java.io.*;
public class tarea
{
public static void main(String args[]) throws IOException
{
String cadena;
try
{
BufferedReader n=new BufferedReader(new FileReader("cadenas.txt"));
while((cadena=n.readLine())!=null){
comprueba(cadena);
}
}
catch(FileNotFoundException e)
{
System.out.println("No se encuentra el archivo");
}
}
public static void comprueba(String palabra)
{
String nuevacadena=palabra+'#';
int tam=nuevacadena.length();
int matriz [][]=new int [7][5];
// [a-z] [0-9] + * FC(0)
matriz[0][0]=1; matriz[0][1]=1; matriz[0][2]=3; matriz[0][3]=3; matriz[0][4]=90;
matriz[1][0]=4; matriz[1][1]=5; matriz[1][2]=2; matriz[1][3]=2; matriz[1][4]=100;
matriz[2][0]=1; matriz[2][1]=1; matriz[2][2]=6; matriz[2][3]=6; matriz[2][4]=90;
matriz[3][0]=3; matriz[3][1]=3; matriz[3][2]=3; matriz[3][3]=3; matriz[3][4]=90;
matriz[4][0]=4; matriz[4][1]=4; matriz[4][2]=4; matriz[4][3]=4; matriz[4][4]=90;
matriz[5][0]=5; matriz[5][1]=5; matriz[5][2]=5; matriz[5][3]=5; matriz[5][4]=90;
matriz[6][0]=6; matriz[6][1]=6; matriz[6][2]=6; matriz[6][3]=6; matriz[6][4]=90;
int ren=0,col=0;
try
{
for(int i=0;i[menorque]tam;i++)
{
if(Character.isLetter(nuevacadena.charAt(i)))
{
col=0;
ren=matriz[ren][col];
}
if(Character.isDigit(nuevacadena.charAt(i)))
{
col=1;
ren=matriz[ren][col];
}
if(nuevacadena.charAt(i)=='+')
{
col=2;
ren=matriz[ren][col];
}
if(nuevacadena.charAt(i)=='*')
{
col=3;
ren=matriz[ren][col];
}
if(nuevacadena.charAt(i)=='#')
{
nuevacadena=palabra;
col=4;
if(matriz[ren][col]==100)
{
System.out.print(nuevacadena+"\tCadena Valida\n");
}
else
System.out.print(nuevacadena+"\tCadena Invalida\n");
}
}
}catch (ArrayIndexOutOfBoundsException exc){}
}
}
martes, 13 de octubre de 2009
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario