2011-04-23 8 views
0

나는 아래의 문장을 string.i와 같이 작성해야하지만, 유효하지 않은 문자 시퀀스를 제공하고 있습니다. 기본 사항은 알고 있지만 this.any를 도와 줄 수는 없습니다. 그 문자가 다르게 처리되도록 -자바를 사용하는 문자열 형식

String str="_1"; 

'\str%' ESCAPE '\' 

Output should be: '\_1%' ESCAPE '\'. 

감사합니다,

Chaitu

+0

실제 코드 행은 하나만 표시되었습니다. 짧지 만 완전한 예를 대신 게시하십시오. 내 생각 엔 자바에서 실제로 지원되지 않는 방식으로 문자열 보간을 찾고 있지만 확실히 말할 수는 없다. –

답변

1
String result = "'\\" + str + "%' ESCAPE '\\'"; 
1

문자열 내부는 백 슬래시 문자는 후 문자를 "이스케이프"것입니다.

\에는이 특별한 의미가 있기 때문에 실제로 문자열에 \ 문자 자체를 넣으려면 \\을 입력해야합니다. 첫 번째 백 슬래시는 두 번째 이스케이프 문자를 이스케이프하므로 문자열 내부에 리터럴 \으로 처리됩니다.

이것을 알면 필요한 결과 문자열을 구성 할 수 있습니다. 희망이 도움이됩니다.

0
String str="_1"; 
String output = String.format("'\\%s%%' ESCAPE '\\'",str); 
System.out.println(output);//prints '\_1%' ESCAPE '\' 
1
String str="_1"; 
String source = "'\\str%' ESCAPE '\\'"; 
String result = source.replaceAll("str", str); 

문자열 보간을 구현하는 또 다른 방법. replaceAll 함수는 소스 문자열에서 str의 모든 어커런스를 찾아서 전달 된 인수로 바꿉니다.

Java 문자열에 백 슬래시 \을 인코딩하려면 단일 백 슬래시가 이스케이프 문자로 작동하기 때문에 복제해야합니다.

replaceAll이 실제로는 regular expression 인 경우 첫 번째 인수에주의하십시오. 따라서 일부 문자는 특별한 의미가 있지만 간단한 단어의 경우 예상대로 작동합니다.