Kotlin で文字列を配列に分割する

David Mbochi Njonge 2023年6月20日
  1. Kotlin プロジェクトを作成する
  2. Kotlin でファイルからテキストを読み取る
  3. split() メソッドと Array() コンストラクターを使用して、Kotlin で文字列を配列に分割する
  4. split() および toTypedArray() メソッドを使用して、Kotlin で文字列を配列に分割する
  5. Kotlin で文字列を配列に分割した後、先頭と末尾の空白を削除する
  6. まとめ
Kotlin で文字列を配列に分割する

一連の文字シーケンスは常に文字列を形成し、必要に応じて各文字シーケンスを取得できます。 たとえば、実際のアプリケーションでは、ユーザーは通常、一連の文字を使用して、アプリケーション内の特定のサービスまたは製品を検索します。

通常、検索を実行するために文字列全体を使用することはありません。 通常、検索用語からキーワードを取得し、それらを使用して検索を実行します。

このチュートリアルでは、Kotlin で文字列を文字列の配列に分割する方法を示します。 この手法を使用して、前述のように、文字列配列からキーワードを取得することにより、アプリケーションで検索できます。

Kotlin プロジェクトを作成する

IntelliJ IDEA を開き、File > New > Project を選択します。 開いたウィンドウで、プロジェクト名を split-string として入力し、[言語] セクションで [Kotlin] を選択し、[ビルド システム] セクションで [IntelliJ] を選択します。

最後に、Create ボタンを押してプロジェクトを生成します。

プロジェクトが生成されたら、src フォルダーの下に data.txt という名前のファイルを作成し、このテキストをファイルに貼り付けます。

Your, service, provider, is, wishing, you, a, good, day

このテキストには、各文字列がコンマで区切られた 1 行の文字列が含まれています。 このファイルを使用して、文字列をアプリケーションに読み込みます。

Kotlin でファイルからテキストを読み取る

src/main/kotlin フォルダーの下に Main.kt という名前の 2つ目のファイルを作成し、次のコードをコピーしてファイルに貼り付けます。

import java.io.File

private val fileData = File("src/data.txt");

fun readFileData(): String {
    return fileData.bufferedReader()
        .readLine();
}

fun main(){
    println(readFileData());
}

このコードでは、readLine() メソッドを使用して data.txt ファイルに追加した行を BufferedReader を使用して読み取る readFileData() という名前のメソッドを作成しました。

BufferedReader は、データがファイルから直接読み取られるのではなく、バッファに読み取られるため、ファイルからデータを読み取る効率的な方法を提供します。 このデータが再び必要になった場合、データはバッファから取得されます。

readLine() メソッドは、テキスト行が存在する場合はそれを読み取ります。 それ以外の場合、メソッドは null を返します。 行の終わりは、改行 \n、キャリッジ リターン \r、または EOF によって識別され、ファイルの終わりを意味します。

このコードを実行すると、ファイルが正常に読み取られることに注意してください。 以下に示すように、内容がコンソールに記録されます。

Your, service, provider, is, wishing, you, a, good, day

split() メソッドと Array() コンストラクターを使用して、Kotlin で文字列を配列に分割する

前の例の main() メソッドについてコメントし、次のコードをコピーして Main.kt ファイルの readFileData() メソッドの後に貼り付けます。

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() コンストラクターを使用して新しい配列を作成します。 このコンストラクターは 2つの引数を受け取ります。1つ目は配列サイズで、2つ目は int を受け取り、型 T を返すラムダ式です。

リストはこれらすべての引数を提供できるため、Array() コンストラクターの最初の引数としてリスト サイズを渡し、2 番目の引数はリスト内の各項目のインデックスを使用して配列の値を返します。

文字列が配列に変換されたことを確認するために、返された配列 usingSplitAndArray()[0] のインデックス 0 の値を main() メソッドでログに記録しました。

このコードを実行して、出力が次のようになっていることを確認します。

Your

split() および toTypedArray() メソッドを使用して、Kotlin で文字列を配列に分割する

前の例の main() メソッドをコメントアウトし、次のコードをコピーして Main.kt ファイルの usingSplitAndArray() メソッドの後に貼り付けます。

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() メソッドをコメントアウトし、次のコードをコピーして Main.kt ファイルの usingToTypedArray() メソッドの後に貼り付けます。

fun usingTrimMethod(): Array<String> {
    return readFileData()
        .split(",")
        .map(String::trim)
        .toTypedArray()
}

fun main(){
    println(usingTrimMethod()[1])

}

テキストには先頭の空白が含まれており、前の例では文字列の一部として空白を含む値が返されたことに注意してください。 先頭と末尾の空白を削除するには、map() メソッドを呼び出し、trim() メソッドをその引数として渡します。

trim() メソッドは、先頭と末尾の空白があればすべて削除する変換関数です。 この例は前の例と似ており、主な目的は空白を削除する方法を示すことです。

この例を実行すると、以下に示すように、この場合、コンソールに記録された値に空白がないことに注意してください。

service

まとめ

このチュートリアルでは、文字列を配列に分割する方法を学びました。 取り上げたトピックは次のとおりです。

  1. テキスト ファイルから文字列の行を読み取る。
  2. split() メソッドと Array() コンストラクターを使用して、文字列の配列を返します。
  3. split() メソッドと toTypedArray() メソッドを使用して、文字列の配列を返します。
David Mbochi Njonge avatar David Mbochi Njonge avatar

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

関連記事 - Kotlin String