import java.lang.*;
import java.util.UUID;
public class automata_finito {
public static void main(String[] args) throws IOException {
BufferedReader a=new BufferedReader(new InputStreamReader (System.in));
String Usuario,contrasena;
int Password;
//UUID (Unique Universal Identifier)
System.out.println(UUID.randomUUID().toString().toUpperCase().substring(0, 12));
System.out.println("Usuario:");
Usuario= a.readLine();
System.out.println("Password:");
Password= Integer.parseInt(a.readLine());
if (Usuario.equals("Cristian") && Password == 12345){
System.out.println(" ¡Bienvenido Cristian!");
}
else {
System.out.println(" El Usuario y/o Password son incorrectos");
}
}
}
Este programa lo que hace es validar las contraseñas nuevas que se entan generando a partir de un RANDOM, el cual va a integrar caracteres como el alfabeto de la A-Z combinado con numeros de el 0-9.
El proceso de entrada solo es valido si la contraseña ingresada esta escrita correcta de manera correcta en como se esta imprimiendo.
ejemplo 2: (Analizador sintáctico)
package lenguaje_formal;
import java.io.*;
import java.lang.*;
public class Lenguaje_formal {
public static void main(String[] args) throws IOException {
BufferedReader a=new BufferedReader(new InputStreamReader (System.in));
int opcion;
int variableentera;
String variabletexto;
System.out.println("ELIGE EL TIPO DE PALABRA RESERVADA QUE DESEAS UTILIZAR");
System.out.println("1.-ENTERO");
System.out.println("2.-TEXTO");
opcion=Integer.parseInt (a.readLine());
switch(opcion){
case 1:
System.out.println("Para usar tipo entero solo puedes usar numeros entre el 0 y el 9");
System.out.println("Introduce la variable que quieras usar:");
variableentera = Integer.parseInt(a.readLine());
if (variableentera == 0 || variableentera == 1 || variableentera == 2 || variableentera == 3 || variableentera ==4 || variableentera == 5
|| variableentera == 6 || variableentera == 7 || variableentera == 8 || variableentera == 9)
{
System.out.println("Este tipo de caracter es permitido");
}
else{
System.out.println("Este parametro no esta permitido");
}
break;
case 2:
System.out.println("Para usar de tipo texto solo puedes utilizar vocales");
System.out.println("Introduce la variable que quieras usar:");
variabletexto = a.readLine();
if (variabletexto.equals("a") || variabletexto.equals("e") || variabletexto.equals("i") || variabletexto.equals("o") || variabletexto.equals("u"))
{
System.out.println("Este tipo de caracter es permitido");
}
else{
System.out.println("Este parametro no esta permitido");
}
break;
default:
System.out.println("Esta no es una opcion valida");
break;
}
}
}
En este programa se va analizar la estructura con la cual ingresamos las palabras o los números, es decir que solo puede ingresarse cierto numero de caracteres entre letras o números de acuerdo a la opción deseada.
Si se elige la opción de números solo podrás ingresar números enteros positivos del 0 al 9, si ingresamos algún otro numero diferente a los permitidos se mandara una alerta de que el numero que estamos ingresando no es valido en este programa.
En el caso de elegir la opción de texto, podremos ingresar letras básicas como son vocales: a,e,i,o,u. Si ingresamos alguna otra letra diferente a estas definidas se enviara un mensaje el cual es: Este parámetro no esta permitido y tendrás que entrar de nuevo al programa.