StringBuilder.ToString()
은 문자열의 시작과 끝 부분에 '\'문자를 추가합니다.StringBuilder.ToString()은 문자열의 처음과 끝에 ''문자를 추가하고
왜 이런가요?
.ToString()을 호출하기 전에 문자열에 '\'문자가 없습니다.
StringBuilder.ToString()
은 문자열의 시작과 끝 부분에 '\'문자를 추가합니다.StringBuilder.ToString()은 문자열의 처음과 끝에 ''문자를 추가하고
왜 이런가요?
.ToString()을 호출하기 전에 문자열에 '\'문자가 없습니다.
당신이 여기이 백 슬래시 생각하고 실행할 수있는 테스트입니다?
그렇다면, 당신은 출력을 오독하고 있습니다 : 백 슬래시는 문자열에 실제로 아니다. C# 구문에 따라 표현을 유효하게 만들 때만 여기에 표시됩니다. 예를 들어, Console.WriteLine
을 사용하여 문자열을 출력하려면 백 슬래시가 없습니다.
공정하게 말하면, 은 일치하지 않습니다.입니다. StringBuilder
의 디버그보기에는 백 슬래시가 없지만 문자열에 대한 디버그보기에는 백 슬래시가 있습니다.
StringBuilder에 어떤 텍스트가 있습니까?
다음 코드는 그냥 날
var sb = new StringBuilder();
sb.Append("hello");
var test = sb.ToString();
Console.WriteLine(test);
내가 뭔가를 놓치고 밖으로 "안녕하세요"기록?
정말 확실하지 않은 소리로 대답하는 것은 아닙니다. 질문은 현재 상태가 잘못되었습니다. – Dykam
@Dyam : 나는 이것이 유용한 대답이라고 생각합니다. OP가 올바르게 작동하는 샘플을 제공합니다. –
@Dykam 나는 질문을하는 사람과 같은 결과를 얻지 못했고 그에게 나에게 많이 줄지 않았기 때문일 수도있다. –
StringBuilder은 추가 한 문자를 추가하지 않습니다. 디버거 출력을 복사하기 쉽도록 문자열 작성기에 의해 생성 된 문자열의 디버그보기와 characters which may need to be escaped을 앞에두고 백 슬래시 (\
)를 사용하는 것이 좋습니다.
문자는 실제로 문자열 데이터 자체가 아니며 표시 문자열의 일부입니다.
편집 : 여기 당신이
private static void TestStringBuilder()
{
StringBuilder builder = new StringBuilder();
builder.Append(@"""saoetuhasoethuasteuhasoetnuh""");
foreach (char c in builder.ToString())
{
System.Diagnostics.Debug.Assert(c != '\\', "EPIC STRINGBUILDER FAIL");
}
}
여기서 볼 수 있도록 코드를 입력하십시오. –
몇 가지 코드를 게시 하시겠습니까? – Paddy
-1 790 개 질문 후에 초급 질문을 줄이거 나 적어도 더 나은 글쓰기가 있다고 생각할 것입니다. 또는 맞춤법 검사를 배우십시오. –