[c#] C #에서 문자열에서 줄 바꿈을 자르는 가장 쉬운 방법은 무엇입니까?

_content가 NewLine 문자로 끝나지 않는지 확인하고 싶습니다.

_content = sb.ToString().Trim(new char[] { Environment.NewLine });

그러나 Trim은 문자열 모음에 대해 오버로드 된 매개 변수가없는 것처럼 보이므로 위의 코드는 작동하지 않습니다 .

문자열 끝에서 Enivronment.Newline을 제거하는 가장 간단한 한 줄은 무엇입니까?



답변

다음은 나를 위해 작동합니다.

sb.ToString().TrimEnd( '\r', '\n' );

또는

sb.ToString().TrimEnd( Environment.NewLine.ToCharArray());


답변

.Trim()\r\n나를 위해 제거합니다 (.NET 4.0 사용).


답변

어때 :

public static string TrimNewLines(string text)
{
    while (text.EndsWith(Environment.NewLine))
    {
        text = text.Substring(0, text.Length - Environment.NewLine.Length);
    }
    return text;
}

여러 줄 바꿈이 있으면 다소 비효율적이지만 작동합니다.

또는, 당신이 (말) 트리밍 괜찮다면 "\r\r\r\r"또는 "\n\n\n\n"오히려보다는 다만 "\r\n\r\n\r\n":

// No need to create a new array each time
private static readonly char[] NewLineChars = Environment.NewLine.ToCharArray();

public static string TrimNewLines(string text)
{
    return text.TrimEnd(NewLineChars);
}


답변

프레임 워크를 사용하십시오. ReadLine () 메서드는 다음과 같이 말합니다.

줄은 줄 바꿈 ( “\ n”), 캐리지 리턴 ( “\ r”) 또는 바로 뒤에 줄 바꿈 ( “\ r \ n”)이 오는 캐리지 리턴이 뒤 따르는 일련의 문자로 정의됩니다. 반환되는 문자열에 종료 캐리지 리턴 또는 줄 바꿈이 포함되지 않습니다.

따라서 다음은 트릭을 수행합니다.

_content = new StringReader(sb.ToString()).ReadLine();


답변

이건 어떤가요

_content = sb.ToString().Trim(Environment.NewLine.ToCharArray());


답변

_content = sb.TrimEnd(Environment.NewLine.ToCharArray());

물론 “\ r \ r \ r \ r”과 “\ n \ n \ n \ n”및 기타 조합이 제거됩니다. 그리고 NewLine이 “\ n \ r”이 아닌 “환경”에서 이상한 동작이 발생할 수 있습니다. 🙂

그러나 이것으로 살 수 있다면 이것이 문자열 끝에서 줄 바꿈 문자를 제거하는 가장 효과적인 방법이라고 믿습니다.


답변

그냥 어때 :

string text = sb.ToString().TrimEnd(null)

그러면 문자열 끝에서 모든 공백 문자를 가져옵니다. 개행이 아닌 공백을 유지하려는 경우에만 문제가됩니다.