2009-04-24 10 views

답변

8

:

컴퓨터. 을 사용하여 문자 그룹을 문법 단위 (기본 문법)와 연결하려면 분석 ( 문자의 문자열) 코드로 프로그램 텍스트를 돌려 -

정의의 컨텍스트는 프로그램의 텍스트 또는 정의 된 문법에 대한 그 구성 부분으로 일반적인 의미에서 언어의 번역이다. 그러나 특정 언어 키워드와 관련하여 일반적으로 기본 데이터 형식의 문자열 값을 해당 데이터 형식의 내부 표현으로 변환하는 것을 의미합니다. 예를 들어, 문자열 "10"은 숫자 (정수) 10이됩니다.

30

구문 분석은 한 개체의 값을 읽고 다른 유형으로 변환하는 것입니다. 예를 들어 값이 "10"인 문자열을 가질 수 있습니다. 내부적으로 문자열에는 실제 숫자 10이 아닌 유니 코드 문자 '1'과 '0'이 포함됩니다. 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"; 

을 그리고는 당신은 호출 : 당신은 "123" 문자열을 분석하고 거기에 정수를 찾기 위해 자바를 말하는 것

int i = Integer.parseInt(someString); 

.

다른 예 : 그것은 당신의 소스 코드를 컴파일 자바 컴파일러가하는 행동의

하나는 "분석"당신 된 .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

모두가 올바른 정의임을 동의합니까? –

0

구문 분석은 부품 또는 토큰 세트에서 텍스트의 구분이다.

+0

-1 죄송합니다. 이해하기가 어렵지만 다른 답변에 포함되지 않은 내용은 추가하지 않습니다. 스택 오버플로에 오신 것을 환영합니다! –

+0

+1. 구조가 더 좋을 수도 있지만 (수정 제출), 답은 정확하고 새롭고 간결합니다. –

0

구문 분석은 문자의 문자열을 분석하고 해당 문자열에서 토큰을 찾는 프로세스이며 파서는 인터프리터 및 컴파일러의 구성 요소입니다. 어휘 분석을 사용하고 구문 분석을 사용합니다.그것을 파싱 한 다음이 전체 컴파일 과정 후에이 코드를 컴파일합니다.

+2

귀하의 답변은 다른 답변에서 제공하지 않은 내용을 어떻게 제공합니까? –

0

구문 분석은 개체를 구체적으로 분석한다는 것을 의미합니다. 예를 들어 검색 엔진에 일부 키워드를 입력하면 키워드를 구문 분석하고 각 단어를 검색하여 결과를 제공합니다. 기본적으로 파일에서 문자열을 가져 와서 원하는 정보를 추출합니다. 다른 캐릭터의 캐릭터의 위치를 ​​계산하는데 사용 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 본질적 IntegerString 변환한다.

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에서 문자열은 Decimal, Octal, Binary, Hexadecimal 등으로 구문 분석됩니다. 응용 프로그램에서 문자열 형식으로 사용자 입력을받는 경우 응용 프로그램에서 해당 입력을 정수 또는 double 유형. 타입 캐스팅과 같지 않습니다. 타입 캐스팅의 경우, 사용 된 타입은 카스트 (caste)를 위해 호환 가능해야하지만 파싱 (parsing)과 같은 것은 없다.

+0

나는 왜 대답이 그렇게 적은 upvotes를 포함하는지 궁금해. 이 간단한 답변을 주셔서 감사합니다 +1 – Pihu

+0

환영 @ 피후 –