StringBuilder의 개행 문자


88

새 줄 (\ n \ r) 문자를 StringBuilder어떻게 추가합니까?


17
그것은 일반적인 OS에서 개행이 아닙니다. Windows는 \ r \ n, Mac은 \ r, Unix 및 Linux는 \ n입니다.
Ben Voigt

2
'개행'은 항상 '\ n'입니다. 기계식 텔레타이프의 플래 튼 시프트 캐릭터였습니다. '캐리지 리턴'은 항상 '\ r'입니다. 텔레타이프의 캐리지 리턴 문자였습니다. 각 운영 체제는 다르게 해석 할 수 있습니다. Unix / Linux에서는 더 이상 기계적인 시스템이 아니기 때문에 불필요하기 때문에 일반적으로 return이 사용되지 않습니다.
Jay

6
@Jay : 플래 튼 이동 만 일으키는 문자는 줄 바꿈이 아니라 줄 바꿈이라고합니다.
Ben Voigt

답변:


125

Environment.NewLine 속성 을 사용 합니다 .

다음과 같은 것 :

StringBuilder sb = new StringBuilder();
sb.AppendFormat("Foo{0}Bar", Environment.NewLine);
string s = sb.ToString();

또는

StringBuilder sb = new StringBuilder();
sb.Append("Foo");
sb.Append("Foo2");
sb.Append(Environment.NewLine);
sb.Append("Bar");
string s = sb.ToString();

추가 할 때마다 새 줄을 만들고 싶다면 Ben Voigt의 답변을 볼 수 있습니다 .


2
Append와 AppendLine을 혼합하여 모든 Append 이후가 아니라 원하는 위치에 새 줄을 가져올 수 있습니다. 또한 새 줄 시퀀스 만 추가하는 AppendLine의 인수가없는 버전에 연결했습니다.
Ben Voigt

4
Stringbuilder.AppendLine ()은 sb.Append (Environment.NewLine); 내가 (말을 깔끔한 또한 msdn.microsoft.com/en-us/library/ebk18257.aspx )
Mulki

3
유닉스 시스템의 Environment.NewLine은 "\ r \ n"이 아니므로 "\ r \ n"으로 지정된 것을 구현하는 경우 AppendLine을 호출하는 대신 코드에 작성해야합니다.
hultqvist

1
@hultqvist : AppendLineStreamWriter에서 사용 하는 것이 더 좋습니다. 그러면 StreamWriter단순히 Environment.NewLine. 예를 들어 SMTP 연결에 연결된 스트림을 열면 해당 NewLine속성을 "\ r \ n"으로 설정하면 Unix에서도 유효한 SMTP 핸드 셰이크를 얻을 수 있습니다.
벤 보이트

1
AppendLine은이 방법보다 간단합니다.
Antonio Mano




4

StringBuilder의 추가 라인 내장 함수를 사용하십시오.

StringBuilder sb = new StringBuilder();
sb.AppendLine("First line");
sb.AppendLine("Second line");
sb.AppendLine("Third line");

산출

First line
Second line
Third line

2
StringBuilder sb = new StringBuilder();

sb.AppendLine () 또는 sb.Append (Environment.NewLine)을 사용할 수 있습니다 .


1

여러 줄의 경우 가장 좋은 방법은 다음과 같습니다.

        IEnumerable<string> lines = new List<string>
        {
            string.Format("{{ line with formatting... {0} }}", id),
            "line 2",
            "line 3"
        };
        StringBuilder sb = new StringBuilder();
        foreach(var line in lines)
            sb.AppendLine(line);

이런 식으로 Environment.NewLine 또는 AppendLine ()이 여러 번 반복되어 화면을 복잡하게 만들 필요가 없습니다. 또한 입력하는 것을 기억해야하는 것보다 오류가 덜 발생합니다.


1

StringBuilder 클래스에 대한 확장을 작성하십시오.

Public Module Extensions
    <Extension()>
    Public Sub AppendFormatWithNewLine(ByRef sb As System.Text.StringBuilder, ByVal format As String, ParamArray values() As Object)
        sb.AppendLine(String.Format(format, values))
    End Sub
End Module
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.