Kotlin에서 문자열을 배열로 분할
- 코틀린 프로젝트 생성
- Kotlin의 파일에서 텍스트 읽기
-
Kotlin에서
split()
메서드와Array()
생성자를 사용하여 문자열을 배열로 분할 -
split()
및toTypedArray()
메서드를 사용하여 Kotlin에서 문자열을 배열로 분할 - Kotlin에서 문자열을 배열로 분할한 후 선행 및 후행 공백 제거
- 결론
일련의 문자 시퀀스는 항상 문자열을 형성하며 필요한 경우 각 문자 시퀀스를 검색할 수 있습니다. 예를 들어 실제 응용 프로그램에서 사용자는 일반적으로 일련의 문자를 사용하여 응용 프로그램의 특정 서비스나 제품을 검색합니다.
검색을 수행하기 위해 일반적으로 전체 문자 시퀀스를 사용하지 않습니다. 일반적으로 검색어에서 키워드를 검색하고 이를 사용하여 검색을 수행합니다.
이 튜토리얼에서는 Kotlin에서 문자열을 문자열 배열로 분할하는 방법을 보여줍니다. 위에서 언급한 것처럼 문자열 배열에서 키워드를 검색하여 이 기술을 사용하여 애플리케이션에서 검색할 수 있습니다.
코틀린 프로젝트 생성
IntelliJ IDEA를 열고 파일 > 새로 만들기 > 프로젝트
를 선택합니다. 열리는 창에서 프로젝트 이름을 split-string
으로 입력하고 Language 섹션에서 Kotlin
을 선택한 다음 Build System 섹션에서 IntelliJ
를 선택합니다.
마지막으로 만들기
버튼을 눌러 프로젝트를 생성합니다.
프로젝트가 생성되면 src
폴더 아래 data.txt
라는 파일을 만들고 이 텍스트를 파일에 붙여넣습니다.
Your, service, provider, is, wishing, you, a, good, day
이 텍스트는 문자열의 한 줄을 포함하며 각 문자열은 쉼표를 사용하여 다른 문자열과 구분됩니다. 이 파일을 사용하여 응용 프로그램으로 문자열을 읽습니다.
Kotlin의 파일에서 텍스트 읽기
src/main/kotlin
폴더 아래 Main.kt
라는 두 번째 파일을 만들고 다음 코드를 파일에 복사하여 붙여넣습니다.
import java.io.File
private val fileData = File("src/data.txt");
fun readFileData(): String {
return fileData.bufferedReader()
.readLine();
}
fun main(){
println(readFileData());
}
이 코드에서는 BufferedReader
를 사용하여 readLine()
메서드를 사용하여 data.txt
파일에 추가한 줄을 읽는 readFileData()
라는 메서드를 만들었습니다.
BufferedReader
는 데이터를 파일에서 직접 읽는 대신 버퍼로 읽기 때문에 파일에서 데이터를 읽는 효율적인 방법을 제공합니다. 이 데이터가 다시 필요하면 버퍼에서 데이터를 가져옵니다.
readLine()
메소드는 단일 텍스트 라인이 있는 경우 이를 읽습니다. 그렇지 않으면 이 메서드는 null을 반환합니다. 라인의 끝은 파일의 끝을 의미하는 라인 피드 \n
, 캐리지 리턴 \r
또는 EOF
로 식별됩니다.
이 코드를 실행하고 파일을 성공적으로 읽었는지 확인합니다. 내용은 아래와 같이 콘솔에 기록됩니다.
Your, service, provider, is, wishing, you, a, good, day
Kotlin에서 split()
메서드와 Array()
생성자를 사용하여 문자열을 배열로 분할
이전 예제에서 main()
메서드에 주석을 달고 readFileData()
메서드 뒤에 다음 코드를 복사하여 Main.kt
파일에 붙여넣습니다.
fun usingSplitAndArray(): Array<String> {
val stringData: List<String> = readFileData()
.split(",");
return Array(stringData.size) { index ->
stringData[index]
}
}
fun main(){
println(usingSplitAndArray()[0])
}
이 코드에서는 readFileData()
메서드가 반환한 문자열에서 split()
메서드를 호출하여 문자열 List<String>
값 목록을 반환하는 usingSplitAndArray()
라는 메서드를 만들었습니다.
split()
메서드는 쉼표를 문자열의 구분 기호로 사용합니다. 원하는 결과를 얻기 위해 split()
메서드에서 다양한 수의 구분 기호를 전달할 수 있습니다.
Array<String>
문자열의 배열을 반환하고 싶기 때문에 반환된 목록을 사용하여 Array()
생성자를 사용하여 새 배열을 만듭니다. 이 생성자는 두 개의 인수를 허용합니다. 첫 번째는 배열 크기이고 두 번째는 int를 허용하고 T
유형을 반환하는 람다 식입니다.
목록이 이러한 모든 인수를 제공할 수 있으므로 목록 크기를 Array()
생성자의 첫 번째 인수로 전달하고 두 번째 인수는 목록의 각 항목 인덱스를 사용하여 배열의 값을 반환합니다.
문자열이 배열로 변환되었는지 확인하기 위해 main()
메서드에서 반환된 배열 usingSplitAndArray()[0]
의 인덱스 0
에 값을 기록했습니다.
이 코드를 실행하고 출력이 아래와 같은지 확인하십시오.
Your
split()
및 toTypedArray()
메서드를 사용하여 Kotlin에서 문자열을 배열로 분할
이전 예제에서 main()
메서드를 주석 처리하고 usingSplitAndArray()
메서드 뒤에 다음 코드를 복사하여 Main.kt
파일에 붙여넣습니다.
fun usingToTypedArray(): Array<String> {
return readFileData()
.split(",")
.toTypedArray();
}
fun main(){
println(usingToTypedArray()[1])
}
이 코드에서는 split()
메서드가 반환한 목록에서 Array<String>
문자열 배열을 반환하는 usingToTypedArray()
라는 함수를 만들었습니다.
이전 예제에서 split()
메서드가 List<String>
문자열 목록을 반환한다고 언급했으며 Array()
생성자를 사용하여 문자열 배열을 만들 수 있습니다.
이 예제는 반환된 목록에서 Array<Strings>
문자열의 배열인 형식화된 배열을 반환하기 위해 toTypedArray()
메서드만 호출하면 되기 때문에 이전 예제보다 훨씬 쉽습니다.
main()
메서드에서 배열이 반환한 인덱스 1
의 값을 기록하여 문자열이 배열로 변환되었는지 확인했습니다.
이 코드를 실행하고 출력이 아래와 같은지 확인하십시오.
service
Kotlin에서 문자열을 배열로 분할한 후 선행 및 후행 공백 제거
이전 예제에서 main()
메서드를 주석 처리하고 usingToTypedArray()
메서드 뒤에 다음 코드를 복사하여 Main.kt
파일에 붙여넣습니다.
fun usingTrimMethod(): Array<String> {
return readFileData()
.split(",")
.map(String::trim)
.toTypedArray()
}
fun main(){
println(usingTrimMethod()[1])
}
텍스트에는 선행 공백이 포함되어 있으며 이전 예제에서는 문자열의 일부로 공백이 있는 값을 반환했습니다. 선행 및 후행 공백을 제거하려면 map()
메서드를 호출하고 trim()
메서드를 인수로 전달합니다.
trim()
메서드는 존재하는 경우 선행 및 후행 공백을 모두 제거하는 변형 함수입니다. 이 예제는 이전 예제와 유사하며 주요 목적은 공백을 제거하는 방법을 보여주는 것입니다.
이 예제를 실행하고 콘솔에 기록된 값(이 경우 아래와 같이 공백이 없음)에 유의하십시오.
service
결론
이 자습서에서는 문자열을 배열로 분할하는 방법을 배웠습니다. 우리가 다룬 주제는 다음과 같습니다.
- 텍스트 파일에서 문자열 한 줄 읽기.
split()
메서드와Array()
생성자를 사용하여 문자열 배열을 반환합니다.split()
메서드와toTypedArray()
메서드를 사용하여 문자열 배열을 반환합니다.
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub