Clojure의 string은 Java 문자열이에요. Java 문자열은 변경할 수 없는 텍스트를 유니코드 문자(글자, 숫자, 문장 부호 등)의 나열로 표현하는 객체이며, 다음과 같이 정의해요:
(def fruit "Apple")
clojure.string 라이브러리는 문자열을 다루고 처리하는 여러 표준 함수를 제공해요. 그 밖에도 Java에서 문자열을 조작하는 일반적인 메서드는 모두 상호 운용을 통해 사용할 수 있어요.
이 연습 문제에서는 로그 라인을 처리해요.
각 로그 라인은 다음과 같은 형식의 문자열이에요: "[<LEVEL>]: <MESSAGE>".
로그 레벨은 세 가지가 있어요:
INFOWARNINGERROR세 가지 과제가 있고, 각 과제는 로그 라인 하나를 받아서 그걸로 무엇인가를 해 달라고 해요.
message 함수를 구현해서 로그 라인의 메시지를 반환하게 해요:
(message "[ERROR]: Invalid operation")
;;=> "Invalid operation"
앞뒤의 공백은 제거해야 해요:
(message "[WARNING]: Disk almost full\r\n")
;;=> "Disk almost full"
log-level 함수를 구현해서 로그 라인의 로그 레벨을 반환하게 해요. 로그 레벨은 소문자로 반환해야 해요:
(log-level "[ERROR]: Invalid operation")
;;=> "error"
reformat 함수를 구현해서 로그 라인의 형식을 바꿔요. 메시지를 먼저 쓰고, 그다음에 로그 레벨을 괄호 안에 넣어요:
(reformat "[INFO]: Operation completed")
;;=> "Operation completed (info)"
Exercism에 가입하고 Clojure 트랙을 개념 12개연습 문제 105개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.