문자열의 큰따옴표 이스케이프
큰따옴표는 다음과 같이 이스케이프할 수 있습니다.
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?";
다음은 입니다.
"
여전히 당신 문자열의 일부입니다.
C# 및 에서 Jon Sket의 Strings를 확인할 수 있습니다.자세한 내용은 NET 기사를 참조하십시오.
C#에서는 백슬래시를 사용하여 문자열에 특수 문자를 추가할 수 있습니다.예를 들어,"
, 기입이 필요합니다.\"
. 백슬래시를 사용하여 쓰는 문자는 다음과 같습니다.
다른 캐릭터와의 백슬래시
\0 nul character
\a Bell (alert)
\b Backspace
\f Formfeed
\n New line
\r Carriage return
\t Horizontal tab
\v Vertical tab
\' Single quotation mark
\" Double quotation mark
\\ Backslash
숫자에 의한 임의의 문자 치환:
\xh to \xhhhh, or \uhhhh - Unicode character in hexadecimal notation (\x has variable digits, \u has 4 digits)
\Uhhhhhhhh - Unicode surrogate pair (8 hex digits, 2 characters)
C#6에서 언급할 가치가 있는 또 다른 점은 인터폴드 스트링과 함께 사용할 수 있다는 것입니다.@
.
예:
string helloWorld = @"""Hello World""";
string test = $"He said to me, {helloWorld}. How are you?";
또는
string helloWorld = "Hello World";
string test = $@"He said to me, ""{helloWorld}"". How are you?";
실행 중인 코드를 확인하십시오!
여기서 보간 관련 참조를 확인하십시오!
2022년 업데이트: 이전에는 "아니오"라고 대답했을 것입니다.단, C#11에서는 "raw string literals"라는 새로운 기능이 도입되었습니다.Microsoft 의 메뉴얼을 인용하려면 , 다음의 순서에 따릅니다.
C# 11부터는 raw string literal을 사용하여 여러 줄의 문자열을 쉽게 작성하거나 이스케이프 시퀀스가 필요한 문자를 사용할 수 있습니다.원시 문자열 리터럴을 사용하면 이스케이프 시퀀스를 사용할 필요가 없어집니다.공백 포맷을 포함하여 출력에 표시할 문자열을 쓸 수 있습니다."
출처: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/strings/ #raw-string-literals
예: 원래 예제를 사용하면 다음과 같이 할 수 있습니다(원시 문자열 리터럴은 항상 3개 이상의 따옴표로 시작합니다).
string testSingleLine = """He said to me, "Hello World". How are you?""";
string testMultiLine = """
He said to me, "Hello World". How are you?
""";
도망가는 건 오해예요
엑스트라"
문자는 문자열 리터럴의 일부이며 컴파일러에 의해 단일 문자로 해석됩니다. "
.
문자열의 실제 값은 그대로입니다.He said to me, "Hello World". How are you?
을 사용하다
당신의 문제를 설명해 주세요.다음과 같이 말합니다.
그러나 여기에는 문자열에 문자 " 가 추가됩니다.
게게무 슨슨?안 돼요.string foo = "Foo"bar"";
컴파일 에러가 발생하기 때문입니다.덧셈 부분에 대해서는, 문자열 사이즈가 올바르지 않은 경우는, 다음과 같습니다.
@"""".Length == 1
"\"".Length == 1
C# 11.0 미리보기에서는 raw 문자열 리터럴을 사용할 수 있습니다.
원시 문자열 리터럴은 문자열 리터럴의 새로운 형식입니다.원시 문자열 리터럴에는 이스케이프 시퀀스를 사용하지 않고 공백, 새 줄, 포함된 따옴표 및 기타 특수 문자를 포함한 임의의 텍스트를 포함할 수 있습니다.원시 문자열 리터럴은 최소 3개의 큰따옴표("") 문자로 시작합니다.같은 수의 큰따옴표로 끝납니다.일반적으로 원시 문자열 리터럴에서는 문자열을 시작할 때 3개의 큰따옴표를 사용하고 문자열을 끝내기 위해 별도의 행에 3개의 큰따옴표를 사용합니다.
string test = """He said to me, "Hello World" . How are you?""";
C#에서는 문자열 내에 따옴표를 삽입하는 방법이 적어도4가지 있습니다.
- 백슬래시가 있는 이스케이프 견적
- 앞에 ""를 붙입니다.
@
하세요. - 대응하는 ASCII 문자 사용
- 16진수 Unicode 문자 사용
상세한 것에 대하여는, 이 문서를 참조해 주세요.
언급URL : https://stackoverflow.com/questions/14480724/escape-double-quotes-in-a-string
'programing' 카테고리의 다른 글
Git에서 한 파일의 작업 복사 수정 내용을 실행 취소하시겠습니까? (0) | 2023.04.16 |
---|---|
크로스 조인이나 데카르트 제품을 엑셀로 하는 방법이 있나요? (0) | 2023.04.16 |
Git으로 CRLF(캐리지 리턴, 라인 피드)를 처리하는 전략은 무엇입니까? (0) | 2023.04.16 |
Objective-C에서의 NSString 대문자와 소문자 변경 (0) | 2023.04.16 |
Pod 설치는 "CocoaPods Master repo 설정"에 머무르고 있습니다. (0) | 2023.04.16 |