C#에서 string은 변경할 수 없는 텍스트를 유니코드 문자(글자, 숫자, 문장 부호 등)의 나열로 나타내는 객체예요. string 인스턴스는 큰따옴표로 정의해요.
string fruit = "Apple";
문자열은 문자열의 내장 메서드를 호출해서 다뤄요. 예를 들어 문자열에서 공백을 없애려면 다음과 같이 Trim 메서드를 사용할 수 있어요.
string name = " Jane "
name.Trim()
// => "Jane"
문자열은 한 번 만들어지면 그 값을 절대 바꿀 수 없어요. 문자열을 수정하는 것처럼 보이는 메서드도 실제로는 새로운 문자열을 반환해요.
여러 문자열을 서로 연결(더하기)할 수 있어요. 가장 간단한 방법은 + 연산자를 사용하는 거예요.
string name = "Jane";
"Hello " + name + "!";
// => "Hello Jane!"
단순한 연결보다 복잡한 문자열 서식에는 문자열 보간을 사용하는 게 좋아요. 문자열에서 보간을 사용하려면 문자열 앞에 달러($) 기호를 붙여요. 그런 다음 중괄호({})를 사용해 문자열 안의 변수에 접근할 수 있어요.
string name = "Jane";
$"Hello {name}!";
// => "Hello Jane!"
이 연습 문제에서는 로그 라인을 처리해요.
각 로그 라인은 다음과 같은 형식의 문자열이에요: "[<LEVEL>]: <MESSAGE>".
로그 레벨은 다음 세 가지예요:
INFOWARNINGERROR세 가지 작업이 있어요. 각 작업에서는 로그 라인을 받아 무언가를 처리해야 해요.
로그 라인의 메시지를 반환하는 (static) LogLine.Message() 메서드를 구현해요:
LogLine.Message("[ERROR]: Invalid operation")
// => "Invalid operation"
앞뒤 공백은 제거해야 해요:
LogLine.Message("[WARNING]: Disk almost full\r\n")
// => "Disk almost full"
로그 라인의 로그 레벨을 반환하는 (static) LogLine.LogLevel() 메서드를 구현해요. 이때 로그 레벨은 소문자로 반환해야 해요:
LogLine.LogLevel("[ERROR]: Invalid operation")
// => "error"
로그 라인의 형식을 바꿔 메시지를 앞에 두고 로그 레벨을 그 뒤에 괄호로 묶는 (static) LogLine.Reformat() 메서드를 구현해요:
LogLine.Reformat("[INFO]: Operation completed")
// => "Operation completed (info)"
Exercism에 가입하고 C# 트랙을 개념 62개연습 문제 178개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.