큰 따옴표는 다음과 같이 이스케이프 처리 할 수 있습니다.
string test = @"He said to me, ""Hello World"". How are you?";
그러나 이것은 "
문자열에 문자 를 추가하는 것과 관련이 있습니다. 문자열을 변경할 필요가 없도록 큰 따옴표를 이스케이프 처리하는 C # 함수 또는 다른 방법이 있습니까?
답변
아니.
그대로 그대로 문자열 리터럴을 "
사용 하거나 백 슬래시 사용을 피하십시오 .
string test = "He said to me, \"Hello World\" . How are you?";
두 경우 모두 문자열이 변경되지 않았습니다 . 이스케이프 "
된 단일 항목 이 있습니다. 이것은 C #에 문자가 문자열 종결자가 아니라 문자열의 일부임을 알리는 방법입니다.
답변
어느 쪽이든 백 슬래시를 사용할 수 있습니다.
string str = "He said to me, \"Hello World\". How are you?";
인쇄합니다.
He said to me, "Hello World". How are you?
이것은 정확히 같은 지문입니다;
string str = @"He said to me, ""Hello World"". How are you?";
여기 DEMO
있습니다.
"
여전히 문자열의 일부입니다.
확인 Escape Sequences
및 String literals
MSDN에서.
답변
C #에서는 백 슬래시를 사용하여 문자열에 특수 문자를 넣을 수 있습니다. 예를 들어, “를 넣으려면 \”를 작성해야합니다. 백 슬래시를 사용하여 작성하는 많은 문자가 있습니다. 숫자가있는 백 슬래시 :
- \ 000 null
- \ 010 백 스페이스
- \ 011 가로 탭
- \ 012 줄 바꿈
- \ 015 캐리지 리턴
- 대체품 \ 032
- 큰 따옴표 \ 042
- 작은 따옴표 \ 047
- 134 백 슬래시
- 140 억음 악센트
othe 문자가있는 백 슬래시
- \ a 벨 (경고)
- \ b 백 스페이스
- \ f 용지 공급
- \ n 줄 바꿈
- \ r 캐리지 리턴
- \ t 가로 탭
- \ v 세로 탭
- 작은 따옴표
- 큰 따옴표
- 백 슬래시
- \? 리터럴 물음표
- 8 진수로 된 ooo ASCII 문자
- 16 진수 표기법의 \ x hh ASCII 문자
- \ x hhhh이 이스케이프 시퀀스가 와이드 문자 상수 또는 유니 코드 문자열 리터럴에 사용되는 경우 16 진 표기법의 유니 코드 문자입니다. 예를 들어, WCHAR f = L ‘\ x4e00’또는 WCHAR b [] = L “한자의 한자는 \ x4e00″입니다.
답변
당신은 탈출을 오해하고 있습니다.
추가 "
문자는 문자열 리터럴의 일부입니다. 그것들은 컴파일러에 의해 단일 로 해석됩니다 "
.
He said to me , "Hello World".How are you ?
런타임에 인쇄하면 문자열의 실제 값은 여전히 입니다.
답변
문제를 설명하십시오. 당신은 말한다 :
그러나 여기에는 문자열에 “문자를 추가하는 것이 포함됩니다.
그게 무슨 문제 야? string foo = "Foo"bar"";
컴파일 오류가 발생하기 때문에을 입력 할 수 없습니다 . 에 관해서는 추가 사실이 아니다 문자열 크기 측면에서 부분 :
@"""".Length == "\"".Length == 1