문자열
스칼라에서 문자열은 자바의 java.lang.String
을 그대로 씁니다. 평소 이해한 특성을 그대로 기대해도 되고, 자바에서 쓰던 메서드 그대로 씁니다.
문자열 대체(replace)
java.lang.String
에 있는 replace
메서드를 쓰는 예제입니다. 자바와 스칼라에서 똑같이 씁니다.
자바
"Hello, World!".replace("World", "Korea"); // => "Hello, Korea!"
스칼라
"Hello, World!".replace("World", "Korea") // => "Hello, Korea!"
세미콜론(;)이 없다는 점만 다르고 다 똑같습니다.
스칼라 문자열 리터럴(literal)
스칼라에는 큰따옴표("")로 문자열 값을 나타내는 방법 말고도 다른 표현법이 있습니다.
여러 줄 문자열
val multiline =
"""안녕하세요,
여러 줄에 걸친
문자열입니다.
"""
큰따옴표 세 개를 연달아 써서, 소스코드 여러 줄에 걸쳐 한 문자열을 표현할 수 있습니다. 개행문자(\n)나 공백문자도 그대로 표현됩니다.
val jsonString =
"""{
| "message": "안녕하세요",
| "status": 200
|}""".stripMargin
여러 줄에 걸쳐 문자열을 표현할 때, 소스코드 들여쓰기와 문자열의 공백을 일치시켜 보기 편하게 하려는 목적으로, stripMargin
메서드를 쓰기도 합니다.
치환값을 포함하는 문자열
자바
String name = "홍길동";
final String str = String.format("안녕하세요, %s님!", name);
// => "안녕하세요, 홍길동님!"
final String sum = String.format("1 + 2 = %d", 1 + 2);
// => "1 + 2 = 3"
스칼라
val name = "홍길동"
val str = s"안녕하세요, ${name}님!"
// => "안녕하세요, 홍길동님!"
val sum = s"1 + 2 = ${1 + 2}"
// => "1 + 2 = 3"
s
로 시작하는 큰따옴표로 묶은 문자열 안에는, 문맥 안에 있는 식(expression)을 ${}
로 포함해 넣을 수 있습니다.