2009-04-24 9 views

Respuesta

8

De dictionary.reference.com:

Informática. para analizar (una cadena de caracteres) para asociar grupos de caracteres con las unidades sintácticas de la gramática subyacente .

El contexto de la definición es la traducción del texto del programa o un lenguaje en sentido general en sus partes componentes con respecto a una gramática definida, convirtiendo el texto del programa en código. Sin embargo, en el contexto de una palabra clave de un idioma particular, generalmente significa convertir el valor de cadena de un tipo de datos fundamental en una representación interna de ese tipo de datos. Por ejemplo, la cadena "10" se convierte en el número (entero) 10.

30

El análisis es leer el valor de un objeto para convertirlo a otro tipo. Por ejemplo, puede tener una cadena con un valor de "10". Internamente esa cadena contiene los caracteres Unicode '1' y '0' no el número real 10. El método Integer.parseInt toma ese valor de cadena y devuelve un número real.

String tenString = "10" 

//This won't work since you can't add an integer and a string 
Integer result = 20 + tenString; 

//This will set result to 30 
Integer result = 20 + Integer.parseInt(tenString); 
+5

"El análisis es leer el valor de un objeto para convertirlo a otro tipo". Bueno, eso es solo una parte de lo que es el análisis sintáctico. El análisis es el proceso de tomar datos (texto) y determinar su significado en base a un conjunto de reglas. –

+1

+1 para implementación. También vea http://stackoverflow.com/questions/1788796/what-is-parsing –

47

Se podría decir que analizar una cadena de caracteres es análisis de esta cadena para encontrar fichas o artículos y luego crear una estructura a partir del resultado.

En su ejemplo, llamando a Integer.parseInt en una cadena es analizando esta cadena para encontrar un número entero.

lo tanto, si usted tiene:

String someString = "123"; 

Y luego invocar:

int i = Integer.parseInt(someString); 

Usted está diciendo java para analizar la cadena "123" y encontrar un entero allí.

Otro ejemplo:

Una de las acciones que el compilador Java no, cuando se compila el código fuente es "analizar" el archivo de .java y crear fichas que coinciden con la gramática de Java.

Cuando no escribe correctamente el código fuente (por ejemplo, olvide agregar ; al final de un enunciado), es el analizador el que identifica el error.

Aquí hay más información: http://en.wikipedia.org/wiki/Parse

+2

Me pregunto por qué la respuesta mejor valorada no está en la parte superior. – Faizan

+3

@Faizan ¿Qué quieres decir? ¿Estás seguro de que [ordena las respuestas por votos] (http://stackoverflow.com/questions/787735/what-is-parse-parsing?answertab=votes#tab-top)? –

+0

¿Todos están de acuerdo en que esta es la definición correcta? –

0

de análisis es la división del texto en un conjunto de piezas o fichas.

+0

-1 Lo siento, esto es realmente difícil de entender y no agrega nada que no esté cubierto por las otras respuestas. Bienvenido a Stack Overflow! –

+0

+1. Si bien la estructura podría ser mejor (presentar una edición), su respuesta es precisa y refrescantemente breve. –

0

El análisis es solo el proceso de analizar la cadena de caracteres y encontrar los tokens de esa cadena y el analizador es un componente de intérprete y compilación. Utiliza el análisis léxico y luego el análisis sintáctico .Lo analiza y luego compila este código después de todo este proceso de compilación.

+2

¿Cómo proporciona su respuesta algo que las otras respuestas no dieron? –

0

Analizando significa que estamos analizando un objeto específicamente. Por ejemplo, cuando ingresamos algunas palabras clave en un motor de búsqueda, analizan las palabras clave y devuelven resultados buscando cada palabra. Por lo tanto, básicamente se trata de tomar una cadena del archivo y procesarla para extraer la información que queremos.

Ejemplo de análisis sintáctico utilizando indexOf para calcular la posición de una cadena en otra cadena:

String s="What a Beautiful day!"; 

int i=s.indexOf("day");//value of i would be 17 
int j=s.indexOf("be");//value of j would be -1 
int k=s.indexOf("ea");//value of k would be 8 

paresInt convierte esencialmente un String a un Integer.

String s="9876543"; 
int a=new Integer(s);//uses constructor 
System.out.println("Constructor method: " + a); 
a=Integer.parseInt(s);//uses parseInt() method 
System.out.println("parseInt() method: " + a); 

Salida:

Constructor method: 9876543 

parseInt() method: 9876543 
+0

Pero ¿cuál es el "parse" en él? – abhishah901

4

de análisis puede ser considerado como sinónimo de "romper en pedazos más pequeños" y luego analizar lo que está allí o utilizarlo de una forma modificada. En Java, las cadenas se analizan en Decimal, Octal, Binario, Hexadecimal, etc. Se realiza si su aplicación está recibiendo información del usuario en forma de cadena, pero en algún lugar de la aplicación desea utilizar esa entrada en forma de entero o de tipo doble. No es lo mismo que el tipo de fundición. Para la conversión de tipos, los tipos utilizados deben ser compatibles para poder castear, pero nada de eso en el análisis sintáctico.

+0

Me pregunto por qué su respuesta contiene menos votaciones ascendentes. Gracias por esta sencilla respuesta +1 – Pihu

+0

Su bienvenida @Pihu –