English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin 문자열과 문자열 템플릿

이 문서에서는 예제를 통해 Kotlin 문자열, 문자열 템플릿 및 일반적인 문자열 속성과 함수를 배울 수 있습니다.

Kotlin String(문자열)

문자열은 문자 시퀀스입니다. 예를 들어, "Hello there!"은 문자열 레이터입니다.

Kotlin에서 모든 문자열은 String 클래스의 객체입니다. 따라서 "Hello here!"과 같은 문자열 문자는 해당 클래스의 인스턴스로 구현됩니다.

문자열 변수를 어떻게 생성하나요?

이는 Kotlin에서 String 변수를 정의하는 방법입니다. 예를 들어,

val	myString	=	"Hey	there!"

여기서 myString는 String 타입의 변수입니다.

String 타입의 변수를 선언할 수 있으며, 변수를 초기화할 때 타입을 한 번에 지정할 수 있습니다. 그런 다음, 프로그램에서 나중에 초기화할 수 있습니다.

val	myString:	String
...	..	...
myString	=	"Howdy"

문자열의 문자에 어떻게 접근하나요?

문자열의 요소(문자)에 접근하려면, 인덱스 접근 연산자를 사용하십시오. 예를 들어,

val	myString	=	"Hey	there!"
val	item	=	myString[2]

여기서 item 변수는 myString 문자열의 세 번째 문자 y를 포함하고 있습니다. 이는 Kotlin에서 인덱스가 0부터 시작하기 때문입니다. 1.

val	myString	=	"Hey	there!"
var	item:	Char
item	=	myString[0]    // item	=	'H'
item	=	myString[9]    // item	=	'!'
item	=	myString[10]   // 에러! 문자열 인덱스 범위 초과
item	=		myString[-1]  // 에러! 문자열 인덱스 범위 초과

예제: 문자열 순회

문자열의 요소를 순회하려면, 다음을 사용할 수 있습니다.for문 사용쉽게구현.

fun main(args: Array<String>) {
    val	myString	=	"Hey!"
    for	(item	in	myString)	{
        println(item)
    }
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

H
e
y
!

Kotlin의 문자열은 불변입니다

Java와 마찬가지로, 문자열은 Kotlin에서 불변합니다. 이는 문자열의 단일 문자를 변경할 수 없다는 것을 의미합니다. 예를 들어,

var	myString	=	"Hey!"
myString[0]	=	'h'      // 에러! 문자열

하지만, var 키워드를 사용하여 문자열 변수를 선언하면, 해당 변수를 재할당할 수 있습니다. (추천 읽기:Kotlin var 대비 val)

예제: 문자열 변수 재할당

fun main(args: Array<String>) {
    var	myString	=	"Hey!"
    println("myString	=	$myString")
    myString	=	"Hello!"
    println("myString	=	$myString")
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

myString = Hey!
myString = Hello!

문자열 리터럴

리터럴은 고정된 값을 소스 코드에서 표현하는 형식입니다. 예를 들어, "Hey there!"은 계산이 필요 없이程序에 직접 나타나는 문자열(예:변수)

Kotlin에는 두 가지 유형의 문자열 리터럴이 있습니다:

1.이스케이프 문자열

이스케이프된 문자열에서 이미 이스케이프된 문자가 있을 수 있습니다. 예를 들어

val myString = "Hey there!\n"

여기서 \n은 이스케이프 문자로, 텍스트에서 개행 문자를 삽입하는 위치에 사용됩니다.

이하 Kotlin이 지원하는 이스케이프 문자 목록:

  • \t -  탭 문자를 삽입

  • \b - 백스페이스 문자를 삽입

  • \n - 개행 문자를 삽입

  • \r - 개행 문자를 삽입

  • \' - 단점 문자를 삽입

  • \" - 따옴표 문자를 삽입

  • \\\ - 반취소 기호를 삽입

  • \$ - 달러 문자를 삽입

2.원래 문자열

원래 문자열은 개행 문자(개행 문자가 아님)와 어떤 텍스트를 포함할 수 있습니다. 원래 문자열은 세 개의 인용號 """로 구분됩니다. 예를 들어,

fun main(args: Array<String>) {
    val myString = """
    for(character in "Hey!")
        println(character)
"""
    print(myString)
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

    for(character in "Hey!")
        println(character)

trimMargin() 함수를 사용하여 원래 문자열의前置 공백을 제거할 수 있습니다. 예를 들어,

예제: 원래 문자열 출력

fun main(args: Array<String>) {
    println("trimMargin 함수를 사용하지 않은 출력:")
    val myString = """
    |Kotlin은 흥미롭습니다.
    |Kotlin은 JetBrains에 의해 후원되고 개발되었습니다.
"""
    println(myString)
    println("trimMargin 함수를 사용하여 출력:\n")
    println(myString.trimMargin())
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

trimMargin 함수를 사용하지 않은 출력:
    |Kotlin은 흥미롭습니다.
    |Kotlin은 JetBrains에 의해 후원되고 개발되었습니다.
trimMargin 함수를 사용하여 출력:
Kotlin은 흥미롭습니다.
Kotlin은 JetBrains에 의해 후원되고 개발되었습니다.

default로 trimMargin() 함수는 |를 마진 프리픽스로 사용합니다. 하지만, 새로운 문자열을 함수에 전달하여 변경할 수 있습니다.

예제: 매개변수를 가진 trimMargin() 함수

fun main(args: Array<String>) {
    val myString = """
    !!! Kotlin은 흥미롭습니다.
    !!! Kotlin은 JetBrains에 의해 후원되고 개발되었습니다.
"""
    println(myString.trimMargin("!!! "))
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

Kotlin은 흥미롭습니다.
Kotlin은 JetBrains에 의해 후원되고 개발되었습니다.

Kotlin 문자열 템플릿

Kotlin에는 문자열 템플릿이라는 멋진 기능이 있습니다. 이 기능은 문자열에 템플릿 표현식을 포함할 수 있습니다.

문자열 템플릿 표현식은 달러 기호 $으로 시작합니다. 다음은 몇 가지 예제입니다:

예제: Kotlin 문자열 템플릿

fun main(args: Array<String>) {
    val myInt = 5;
    val myString = "myInt = $myInt"
    println(myString)
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

myInt = 5

이는 문자열 내의 표현식 $myInt($ 기호로 시작하는 표현식)이 평가되어 문자열에 연결된다는 것입니다.

예제: 원시 문자열을 포함한 문자열 템플릿

fun main(args: Array<String>) {
    val a = 5
    val b = 6
    val myString = """
    |${if (a > b) a else b}
"""
    println("더 큰 숫자는: ${myString.trimMargin()}")
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

더 큰 숫자는: 6

수십 개의 문자열 속성과 함수

Kotlin에서는 레이아웃은 String 클래스의 인스턴스로 구현되므로, 이 클래스의 여러 메서드와 속성을 사용할 수 있습니다.

  • length 속성 - 문자열의 문자 시퀀스의 길이를 반환합니다.

  • compareTo 함수 -이 문자열(객체)을 지정된 객체와 비교합니다. 객체가 지정된 객체와 일치하면 0을 반환합니다.

  • get 함수 - 지정된 인덱스处的 문자를 반환합니다. get 함수 대신 인덱스 접근 연산자를 사용할 수 있습니다. 인덱스 접근 연산자는 내부에서 get 함수를 호출합니다.

  • plus 함수 - 새로운 문자열을 반환합니다. 이 문자열은 이 함수에 전달된 문자열과 결합된 문자열입니다. 다음과 같이 사용할 수 있습니다. + 연산자는 plus 함수 대신 사용되기 때문에+연산자는 배경에서 plus 함수를 호출합니다.

  • subSequence 함수 - 지정된 시작과 끝 인덱스에서 새로운 문자열 시퀀스를 반환합니다.

예제: 문자열 속성과 함수

fun main(args: Array<String>) {
    val s1  = "Hey there!"
    val s2 = "Hey there!"
    var result: String
    println("s1문자열의 길이는 ${s1.length}.")
    result = if (s1.compareTo(s2) == 0) "일치" else "일치하지 않음"
    println("문자 s1와 s2는 $result.")
    // s1.get(2)는 s1[2]
    println("세 번째 문자는 ${s}1.get(2).
    result = s1.plus(" How are you?") // result = s1 + " How are you?"
    println("result = ${result})
    println("부문 문자열은 "${s1.subSequence(4, 7}"\"")
}

프로그램을 실행할 때, 출력은 다음과 같습니다:

s1문자열의 길이는 10.
문자열 s1와 s2은 같습니다.
세 번째 문자는 y입니다.
result = Hey there! How are you?
부문 문자열은 "the"입니다