C#에서 StringBuilder.AppendLine을 사용한 후 마지막에 추가된 줄바꿈(Newline)을 제거하려면 몇 가지 방법을 사용할 수 있어요.
방법 1: Remove 메서드 사용
StringBuilder의 Remove 메서드를 이용해 마지막 문자를 삭제하세요.
using System.Text;
StringBuilder sb = new StringBuilder();
sb.AppendLine("첫 번째 줄");
sb.AppendLine("두 번째 줄");
// 마지막 줄바꿈 제거
if (sb.Length > 0)
{
sb.Remove(sb.Length - Environment.NewLine.Length, Environment.NewLine.Length);
}
Console.WriteLine(sb.ToString());
Environment.NewLine.Length를 이용하면 OS에 따라 다른 줄바꿈 길이(\n또는\r\n)를 자동으로 처리합니다.- 마지막 줄바꿈이 반드시 있다고 보장되지 않는 경우,
sb.Length를 체크하여 예외를 방지하세요.
방법 2: TrimEnd와 ToString 사용
StringBuilder의 내용을 문자열로 변환한 뒤, TrimEnd를 사용해 공백과 줄바꿈을 제거합니다.
using System.Text;
StringBuilder sb = new StringBuilder();
sb.AppendLine("첫 번째 줄");
sb.AppendLine("두 번째 줄");
// 문자열 변환 후 줄바꿈 제거
string result = sb.ToString().TrimEnd('\r', '\n');
Console.WriteLine(result);
TrimEnd는 문자열 끝에 있는 특정 문자들을 제거합니다.- 결과를 문자열로 변환해야 하므로
StringBuilder자체를 바로 수정하지는 않습니다.
방법 3: 커스텀 메서드 사용
추가적으로 AppendLine 호출과 마지막 줄바꿈 제거 작업을 자주 반복해야 한다면, 별도의 헬퍼 메서드를 만들어 관리하는 것도 좋습니다.
public static class StringBuilderExtensions
{
public static void AppendLineWithoutTrailingNewline(StringBuilder sb, string text)
{
if (!string.IsNullOrEmpty(text))
{
sb.AppendLine(text);
}
}
public static string ToStringWithoutTrailingNewline(StringBuilder sb)
{
return sb.ToString().TrimEnd('\r', '\n');
}
}
// 사용 예
StringBuilder sb = new StringBuilder();
StringBuilderExtensions.AppendLineWithoutTrailingNewline(sb, "첫 번째 줄");
StringBuilderExtensions.AppendLineWithoutTrailingNewline(sb, "두 번째 줄");
Console.WriteLine(StringBuilderExtensions.ToStringWithoutTrailingNewline(sb));
- 이 방식은 재사용성이 높아 코드의 가독성을 높입니다.
선택 기준
- 성능 우선:
Remove사용. - 간단한 코드:
TrimEnd사용. - 재사용성: 확장 메서드 정의.
위 방법 중 상황에 맞는 것을 선택해 사용하세요!
