Tokens
Es común que separar una cadena en distintas "fichas". Estos símbolos pueden ser palabras, números, comandos, o lo que sea. Hay varias maneras de hacer esto, pero todas las soluciones de buen uso deexpresiones regulares .
* Cadena split ( expresiones regulares ) - Probablemente el más fácil.
* java.util.Scanner - Esto se puede "leer" a partir decadenas. Muy general.
* El . java.util.regex Patrón y Matcher utilizar expresiones regulares - La solución más potente.
* java.util.StringTokenizer - Este ha sido sustituida por expresiones regulares, escáner, y split ().
-------------------------------------------------
Fácil - Separar una cadena (...) método
La manera más fácil para dividir una cadena en distintas "fichas" es utilizarla división (...) método. Por ejemplo,
Prueba de la cuerda = "Es el número uno así."; String [] tokens = test.split (""); / / espacio en blanco es el separador. System.out.println (Arrays.toString (tokens));
Produce la siguiente salida:
[Es, como el número, 1, camino.]
-------------------------------------------------
Buena - Scanner
Scanner puede ser usado para"leer" las cuerdas. Aquí está el ejemplo anterior utilizando escáner, pero debido a que no produce las matrices, los resultados se agregan a un objeto ArrayList.
Cadena de prueba = "Es el número uno así."; Fichas <String> ArrayList = new ArrayList <String> (); escáner tokenize = new Scanner (de prueba), mientras que (tokenize.hasNext ()) {tokens.add (tokenize. next ());}System.out.println (tokens);
Produce el mismo resultado que el anterior:
[Es, como el número, 1, camino.]
No importa lo que constituye un "token", sólo que deben estar separados por espacios en blanco único. Para permitir que uno o más espacios en blanco como separador, utilice "+", lo que significa uno o más espacios en blanco.
Escáner tiene numerosos métodos de trabajo engeneral con las expresiones regulares para identificar el símbolo que desea leer o los delimitadores que desea omitir.
Números. Una de las ventajas de la utilización de un escáner es que usted puede alternar entre la lectura de cadenas y números.
Mefistófeles:
Explicaré de qué se trata la creación de un compilador. Supondré que ya existen nociones de Java en éste rollo como son las clases y losmétodos.
Cuando nosotros queremos programar, nuestro programa el cual cumplirá un objetivo previamente estudiado bajo algoritmos y aplicación de la Ingeniería en Sistemas, está sujeto a las instrucciones que el procesador tenga integradas.
El compilador es un programa que se encarga de leer un archivo de determinado lenguaje de programación y "traducirlo" al lenguaje máquina que es elconjunto de instrucciones (en el caso de las computadoras, el lenguaje binario) que la computadora soporte o "interpreta".
Al leerse nuestro código fuente, el compilador comienza 3 procesos de análisis:
* Léxico
* Sintácico
* Semántico
A continuación explico con ejemplos lo que realizará cada uno de éstos análisis:
1. Análisis Léxico. Supongamos que mi sistema o programa espara automatizar la ventilación de una habitación; algo sencillo. Las acciones del ducto de ventilación son: abrir y cerrar. No se puede decir sólo abrir o cerrar ya que la ventilación (en éste caso) incluye un aire acondicionado (dejémoslo en ventilador) que debe encenderse o apagarse inependientemente de si nuestra ventilación está abierta o cerrada. Nuestras "palabras reservadas", que sonúnicamente las palabras que entiende nuestro compilador serán: abrir, cerrar, encender, apagar, ventilador y ventilación. El análisis léxico buscará entonces que esas palabras estén dentro de nuestro "código fuente". Si queremos crear una estructura para el código fuente, como en HTML o cualquier lenguaje, el programa debe determinar si la estructura se cumple. En caso contrario, no compilará.
2....
Regístrate para leer el documento completo.