2013-07-17 2 views
1

나는 수정하려고하는 코드를 상속 받았으며, 다음 구문을 pf 번호로 보았습니다.Java에서 "%%"는 무엇을 의미합니까?

int titleRecEnd  = inputLine.indexOf("%%headerEnd"); 
... 
int fileNameStart  = inputLine.indexOf("%%File: ")+8; 
int fileNameEnd  = inputLine.indexOf("%%FilenameEnd"); 

나는 this related link를 검토 한 수 있지만, t는 답변으로 또는 대답과 관련된 javadoc에의하거나 이중 %에 대해 일치 검색을 찾을 수 있습니다. 인쇄 형식과 관련이 있다는 것을 알고 있지만 대신 % 대신 구문 정보를 찾지 못하는 것 같습니다.

이러한 확인 가능한 선언은 무엇을합니까?

+5

리터럴 문자열로 사용되지 않았습니까? 텍스트 파일에 '%% headerEnd'가 포함되어 있습니까? 당신의 링크에서'% .3f'는 이것과 같지 않습니다. 즉, 3 자리의 정확도를 가진 부동 펀트가있을 것이고 출력을 포맷하는 데 사용됩니다. –

+0

이것은 특수한 방식으로'%%'를 해석하는 커스텀 대체 메커니즘이나 외부 라이브러리와 비슷합니다. –

+0

texfile에 '%%'의 발생이 없습니다. 'File :'문자열이 파일에 나타나지만'FilenameEnd :'및'headerEnd'는 변수 이름으로 정의되지 않으며 리터럴 문자열로 나타나지 않습니다. – dwwilson66

답변

1

%%는 java.util.Formatter 패턴의 % 문자를 의미합니다. %는 형식 지정자의 시작을 나타 내기 때문에 %%는 % char를 이스케이프 처리하는 데 사용됩니다.

System.out.println("%%"); 

인쇄 경우 String.indexOf의 %를

% 

또는 %% 특별한 의미가 없습니다.

1

, 단순히 리터럴 문자열의 일부가 될 것으로 보인다. 예 : % 다양한 일을 나타 내기 위해 사용되는 특수 문자, string formatting의 맥락에서

%%headerStartSomeHeader%%headerEnd 
%%File: image.png%%FilenameEnd 

;이 같은 파일을 구문 분석하는 데 사용할 수 있습니다 %%은 단일 리터럴 % 심볼로 해석됩니다.

1

큰 문자열의 텍스트 조각을 찾는 것은 단순히 규칙이므로 퍼센트는 보통 두 번 나타나지 않습니다. 어떤 종류의 템플릿. 따라서 %%File과 같은 '키워드'를 찾을 수 있습니다.

String fileName = inputLine.substring(fileNameStart, fileNameEnd);