2017-11-07 6 views
-4

역 슬래시가 문자 이스케이프에 사용된다는 것을 알고 있으므로 두 개의 문자를 사용하여 단일 백 슬래시를 작성해야합니다.Java : 단일 백 슬래시 문자열 - "\"이 왜 불법입니까?

하지만 왜 컴파일되지 않습니까? =>

하지만이 컴파일되지 않습니다

"\\"

을 "\\\\"=> "\"는

어떤 \ 무엇을 탈출?

미리 감사드립니다.

+2

'String r = "\\";'잘 컴파일됩니다. 그리고 당신이 실제로''\\\\ "=> 컴파일하지 않는다 '(이것은 틀린 것입니다)라고 말했기 때문에 여기에 탈출 문제를 피하기 위해 질문의 형식을 올바르게 지정하십시오. – Tom

+0

사실이 아닙니다. 전체 코드와 (잠재적 인) 오류 메시지를 넣으십시오. –

+4

[java에서 String.replaceAll()이 "\"를 실제로 바꾸기 위해 정규식에서 4 개의 슬래시 "\\\\"를 필요로하는 이유는 무엇입니까?] (https://stackoverflow.com/) 질문/18875852/why-string-replace-in-java-requires-4-slashes-in-regex에서 실제 -r로) – Tom

답변

0

이것은 상황에 따라 다릅니다. 일부 String 메서드는 일반 문자열을 사용하지 않으며 정규 표현식을 사용합니다. 정규 표현식에서는 \도 이스케이프 문자이므로 일반 \ 문자에 해당하는 정규 표현식을 사용하려면 "\\\\"으로 작성해야합니다.

+0

가설이 너무 멀었다. 문제의 그 어떤 것도 그러한 시나리오를 제안하지 않는다. –

+1

"\\"=> 컴파일되지 않는다. – kaos

+1

내가 틀렸다고 정정 해 주지만 컴파일 할 때 런타임에 예외를 던질 것입니다. 정규 표현식을 구문 분석하지만 컴파일됩니다. – AxelH

관련 문제