2009-04-24 3 views

ответ

8

От dictionary.reference.com:

компьютеры. для анализа (строка из символов), чтобы связать группы с синтаксическими единицами базовой грамматики .

Контекст определения - это перевод текста программы или языка в общем смысле на его составные части по отношению к определенной грамматике - превращение текста программы в код. Однако в контексте ключевого слова конкретного языка обычно это означает преобразование строкового значения фундаментального типа данных во внутреннее представление этого типа данных. Например, строка «10» становится номером (целое число). 10.

30

Анализ заключается в том, чтобы прочитать значение одного объекта, чтобы преобразовать его в другой тип. Например, у вас может быть строка со значением «10». Внутренне эта строка содержит символы Unicode '1' и '0', а не фактическое число 10. Метод Integer.parseInt принимает это строковое значение и возвращает реальное число.

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

«Анализ состоит в том, чтобы прочитать значение одного объекта, чтобы преобразовать его в другой тип». Ну, это только часть того, что такое парсинг. Анализ - это процесс принятия данных (текста) и определения его значения на основе набора правил. –

+1

+1 для реализации. Также см. Http://stackoverflow.com/questions/1788796/what-is-parsing –

47

Можно сказать, что разбор строки символов является анализирующих эту строку, чтобы найти маркеры, или элементы, а затем создать структуру из результата.

В вашем примере вызов Integer.parseInt на строку разбор этой строки, чтобы найти целое число.

Так что, если у вас есть:

String someString = "123"; 

И тогда вы вызываете:

int i = Integer.parseInt(someString); 

Вы говорите Java для анализа "123" строку и найти целое число там.

Другой пример:

Одним из действий Java-компилятор делает, когда он компилирует исходный код является «разобрать» файл .java и создавать маркеры, которые соответствуют грамматику Java.

Если вы не смогли правильно написать исходный код (например, забудьте добавить ; в конце инструкции), это синтаксический анализатор, который идентифицирует ошибку.

Вот еще информация: http://en.wikipedia.org/wiki/Parse

+2

Интересно, почему самый высокий ответ не на вершине. – Faizan

+3

@Faizan Что значит? Вы уверены, что [сортируете ответы по голосам] (http://stackoverflow.com/questions/787735/what-is-parse-parsing?answertab=votes#tab-top)? –

+0

Согласны ли все с тем, что это правильное определение? – 2016-12-14 21:09:43

0

разборе деление текста к набору частей или жетонов.

+0

-1 Извините, это очень трудно понять и не добавляет ничего, что не подпадает под другие ответы. Добро пожаловать в переполнение стека! –

+0

+1. Хотя структура может быть лучше, (подавая редактирование), ваш ответ точным и освежающе кратким. –

0

Анализ - это просто процесс анализа строки символа и поиска маркеров из этой строки, а парсер - это компонент интерпретатора и компилятора. Он использует лексический анализ, а затем синтаксический анализ .Он анализирует его, а затем компилирует этот код после всего этого процесса компиляции.

+2

Как ваш ответ дает что-то, что другие ответы не дали? –

0

Parsing означает, что мы анализируем объект конкретно. Например, когда мы вводим некоторые ключевые слова в поисковой системе, они анализируют ключевые слова и возвращают результаты, ища каждое слово. Таким образом, он в основном берет строку из файла и обрабатывает ее, чтобы извлечь нужную нам информацию.

Пример синтаксического анализа с использованием indexOf, чтобы вычислить положение строки в другой строке:

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 по существу преобразует String к 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); 

Выход:

Constructor method: 9876543 

parseInt() method: 9876543 
+0

Но что за "разобрать" в нем ??? – abhishah901

4

Синтаксический можно рассматривать как синоним «Ломая на мелкие кусочки», а затем анализируя то, что есть, или использовать его в измененном виде. В Java строки анализируются в десятичные, восьмеричные, двоичные, шестнадцатеричные и т. Д. Это делается, если ваше приложение принимает входные данные от пользователя в форме строки, но где-то в вашем приложении вы хотите использовать этот ввод в форме целое или двойное. Это не то же самое, что тип литья. Для литья типов используемые типы должны быть совместимы для касты, но ничего подобного при разборе.

+0

Интересно, почему в вашем ответе содержится так меньше процентов. Спасибо за этот простой ответ +1 – Pihu

+0

Ваш приветственный @Pihu –

Смежные вопросы