【Kotlin】レッスン1-06:文字列を操作しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:文字列操作

この記事の練習問題を解くために必要な知識:
メイン関数入力と出力の基本コメントの書き方変数と定数算術演算子Null安全性文字列の連結と埋め込み文字列操作import文

<<前のページ Kotlin記事一覧 次のページ>>

Kotlinの「文字列操作」とは

この章ではKotlinにおける「文字列操作」の意味や使い方を学習します。用語の解説が不要な方はここをクリックして練習問題へ飛びましょう。




文字列操作はプログラムの中で非常によく使われる基本機能です。

例えばユーザーの名前を扱ったり、データの形式を調整する際など、多くの場面で役立ちます。

本記事ではKotlinでの基本的な文字列操作について学びましょう。

文字列操作とは?

文字列操作とは、文字列データを加工・利用するための方法や機能のことを指します。

これには文字列の長さを調べたり、特定の文字や部分を抜き出したり、不要な空白を取り除くといった操作が含まれます。

Kotlinではこれらの操作が簡単に行える便利なメソッドが用意されています。

メソッドとは?

Kotlinでは特定の機能を実現するためにメソッドと呼ばれる仕組みを使います。

メソッドはある特定の動作を実行するための命令のまとまりです。例えば「文字列の長さを調べる」や「特定の文字が含まれているか確認する」など、よく使う操作がメソッドとして提供されています。

メソッドの使い方は非常にシンプルで、以下の形式で記述します。

val result = 対象オブジェクト.メソッド名(引数)
  • 対象オブジェクト: メソッドを適用するデータ(ここでは文字列)。
  • メソッド名: 実行したい操作の名前。
  • 引数: 必要に応じてメソッドに渡すデータ(ない場合もあります)。

インデックスとは?

プログラミングにおいて「インデックス」とは、データの中での位置を示す番号のことです。

文字列では最初の文字が「0」という番号を持ちます。この番号を使うことで、特定の文字にアクセスしたり、一部分を抜き出すことができます。

例えば”Kotlin”という文字列の場合、インデックス0は”K”、インデックス1は”o”、インデックス6は”n”となります。

文字列操作の基本構文

以下にKotlinでよく使う文字列操作の基本構文を紹介します。

length

文字列の長さ(文字数)を取得します。

val text = "Kotlin"
println(text.length) // 出力: 6

[index]

文字列の特定位置にある文字を取得します(インデックスは0から始まります)。

val text = "Kotlin"
println(text[ 0]) // 出力: K
println(text[ 4]) // 出力: i

substring

文字列の一部を抜き出します。

val text = "Kotlin"
println(text.substring(0, 3)) // 出力: Kot

isEmpty

文字列が空かどうかを判定します。

val text = ""
println(text.isEmpty()) // 出力: true

toUpperCase() / toLowerCase()

文字列を大文字または小文字に変換します。

val text = "Kotlin"
println(text.toUpperCase()) // 出力: KOTLIN
println(text.toLowerCase()) // 出力: kotlin

trim

文字列の前後にある空白を削除します。

val text = "  Kotlin  "
println(text.trim()) // 出力: Kotlin

contains

文字列が特定の文字列を含むかどうかを判定します。

val text = "Kotlin is fun"
println(text.contains("fun")) // 出力: true

文字列操作の使用例

以下にこれらの基本構文を使った具体的な例を示します。

例1: ユーザー名を処理する

val userName = "  John Doe  "
val cleanedName = userName.trim().toUpperCase()
println(cleanedName) // 出力: JOHN DOE

例2: 部分文字列を取り出して利用する

val text = "Kotlin Programming"
val subText = text.substring(0, 6)
println(subText) // 出力: Kotlin

例3: 特定の単語が含まれるか確認する

val sentence = "Learning Kotlin is fun!"
println(sentence.contains("Kotlin")) // 出力: true

初心者がつまずきやすいポイント

substringの範囲エラー
指定した範囲が文字列の長さを超えるとエラーが発生します。必ず範囲を確認してから使いましょう。

val text = "Kotlin"
println(text.substring(0, 10)) // エラー: IndexOutOfBoundsException

isEmptyとisBlankの違い
isEmptyは文字列が空 (“”) の場合にtrueを返しますが、isBlankは空白のみの文字列でもtrueを返します。

val text = "   "
println(text.isEmpty()) // 出力: false
println(text.isBlank()) // 出力: true

まとめ

この記事ではKotlinでの基本的な文字列操作について学びました。

文字列の長さを調べるlengthや、部分文字列を取得するsubstring、空白を削除するtrimなど、多くの便利な操作が用意されています。

文字列操作の練習問題

Kotlinを使って文字列操作を練習しましょう。

この問題では文字列の長さを調べたり、一部の文字列を取り出したり、特定の文字列が含まれているかを確認します。

また大文字・小文字の変換や前後の空白削除も学びます。プログラムを作成して、Kotlinでの文字列操作に慣れてください。

この問題の要件

以下の要件に従ってコードを完成させてください。

  1. 変数 message を宣言し、「こんにちは、Kotlin!」という文字列を格納すること。
  2. message の長さを取得し、画面に表示すること。
  3. message の最初の1文字目を取得し、画面に表示すること。
  4. message の中から最初の5文字を取り出して表示すること。
  5. 空の文字列を表す変数 emptyString を宣言し、それが空かどうかを確認して結果を表示すること。
  6. message をすべて大文字および小文字に変換した結果をそれぞれ表示すること。
  7. 前後に空白がある文字列 spacedString を宣言し、その空白を削除して表示すること。
  8. message に「Kotlin」という文字列が含まれているかを確認し、その結果を表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

文字列の長さ: 12
1文字目の文字: こ
最初の5文字: こんにちは
文字列は空ですか?: true
大文字変換: こんにちは、KOTLIN!
小文字変換: こんにちは、kotlin!
前後の空白を削除: 'Kotlin'
メッセージに「Kotlin」が含まれていますか?: true

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:メイン関数の定義
  □ 文字列messageを宣言し、”こんにちは、Kotlin!”を代入
  □ 文字列の長さを取得し、出力
  □ 文字列の1文字目を取得し、出力
  □ substringを使用して最初の5文字を取得し、出力
  □ 空の文字列emptyStringを宣言
  □ isEmptyを使用して空文字列かを確認し、出力
  □ toUpperCaseを使用して大文字に変換し、出力
  □ toLowerCaseを使用して小文字に変換し、出力
  □ 文字列spacedStringを宣言し、” Kotlin “を代入
  □ trimを使用して前後の空白を削除し、出力
  □ containsを使用して”message”に”Kotlin”が含まれているか確認し、出力

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

// メイン関数: Kotlinプログラムの開始点
fun main() {
    // 文字列操作の例を説明するプログラム

    // 文字列の宣言
    val message: String = "こんにちは、Kotlin!"
    
    // length: 文字列の長さを取得
    /*【穴埋め問題1】
    ここにmessageの長さを取得して表示するコードを書いてください。
    */

    // [index]: 指定した位置の文字を取得
    /*【穴埋め問題2】
    ここにmessageの1文字目を取得して表示するコードを書いてください。
    */

    // substring: 部分文字列を取得
    /*【穴埋め問題3】
    ここにmessageの最初の5文字を取得して表示するコードを書いてください。
    */

    // isEmpty: 文字列が空かどうかを確認
    val emptyString = ""
    /*【穴埋め問題4】
    ここにemptyStringが空かどうか確認して表示するコードを書いてください。
    */

    // toUpperCase/toLowerCase: 大文字と小文字の変換
    /*【穴埋め問題5】
    ここにmessageを大文字に変換して表示するコードを書いてください。
    */
    /*【穴埋め問題6】
    ここにmessageを小文字に変換して表示するコードを書いてください。
    */

    // trim: 前後の空白を削除
    val spacedString = "  Kotlin  "
    /*【穴埋め問題7】
    ここにspacedStringの前後の空白を削除して表示するコードを書いてください。
    */

    // contains: 特定の文字列が含まれているか確認
    /*【穴埋め問題8】
    ここにmessageに"Kotlin"が含まれているか確認して表示するコードを書いてください。
    */
}

以上がこの問題の穴埋めコードです。

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



練習問題の解答と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

// メイン関数: Kotlinプログラムの開始点
fun main() {
    // 文字列操作の例を説明するプログラム

    // 文字列の宣言
    val message: String = "こんにちは、Kotlin!"
    
    // length: 文字列の長さを取得
    println("文字列の長さ: ${message.length}") // 長さを出力

    // [index]: 指定した位置の文字を取得
    println("1文字目の文字: ${message[0]}") // 0番目の文字を出力(インデックスは0から始まる)

    // substring: 部分文字列を取得
    println("最初の5文字: ${message.substring(0, 5)}") // インデックス0から4までの部分文字列を取得

    // isEmpty: 文字列が空かどうかを確認
    val emptyString = ""
    println("文字列は空ですか?: ${emptyString.isEmpty()}") // 空の場合trueを返す

    // toUpperCase/toLowerCase: 大文字と小文字の変換
    println("大文字変換: ${message.toUpperCase()}") // 全て大文字に変換
    println("小文字変換: ${message.toLowerCase()}") // 全て小文字に変換

    // trim: 前後の空白を削除
    val spacedString = "  Kotlin  "
    println("前後の空白を削除: '${spacedString.trim()}'") // 前後の空白を削除して出力

    // contains: 特定の文字列が含まれているか確認
    println("メッセージに「Kotlin」が含まれていますか?: ${message.contains("Kotlin")}") // 含まれる場合trueを返す
}

正解コードの解説

このプログラムは基本的な文字列操作を学ぶためのものです。

それぞれのコードブロックを見ていきましょう。

プログラムの開始と文字列の宣言

val message: String = "こんにちは、Kotlin!"
  • 文法: 変数宣言 (val) と文字列の初期化
  • 解説: val を使うと変更できない変数を作成します。ここではmessage に「こんにちは、Kotlin!」という文字列を格納しています。

文字列の長さを取得

println("文字列の長さ: ${message.length}")
  • 文法: 文字列プロパティ length
  • 解説: message.length を使うことで文字列の長さを取得できます。この例では「こんにちは、Kotlin!」の長さ(12文字)を表示します。

特定の文字を取得

println("1文字目の文字: ${message[0]}")
  • 文法: インデックスアクセス ([index])
  • 解説: 文字列の特定位置の文字を取り出すにはインデックスを指定します。インデックスは0から始まり、このコードでは最初の文字「こ」を取得しています。

部分文字列の取得

println("最初の5文字: ${message.substring(0, 5)}")
  • 文法: 部分文字列の取得 (substring)
  • 解説: substring を使うと指定した範囲の文字列を取得できます。この例ではインデックス0から4までの文字列「こんにちは」を取得しています。

空文字列の確認

val emptyString = ""
println("文字列は空ですか?: ${emptyString.isEmpty()}")
  • 文法: 空文字列確認メソッド (isEmpty)
  • 解説: isEmpty を使うと文字列が空かどうかを確認できます。この例ではemptyString が空であるため、結果は true です。

文字列の大文字・小文字変換

println("大文字変換: ${message.toUpperCase()}")
println("小文字変換: ${message.toLowerCase()}")
  • 文法: 大文字変換 (toUpperCase) と小文字変換 (toLowerCase)
  • 解説: toUpperCasetoLowerCase を使うことで、文字列全体を大文字または小文字に変換できます。

空白の削除

val spacedString = "  Kotlin  "
println("前後の空白を削除: '${spacedString.trim()}'")
  • 文法: 空白削除メソッド (trim)
  • 解説: trim を使うと文字列の前後にある余分な空白を削除できます。この例では「Kotlin」の前後の空白が取り除かれます。

特定文字列の確認

println("メッセージに「Kotlin」が含まれていますか?: ${message.contains("Kotlin")}")
  • 文法: 特定文字列の確認 (contains)
  • 解説: contains を使うと文字列内に特定の文字列が含まれているか確認できます。この例では「Kotlin」が含まれているため結果は true です。

まとめ

このプログラムでは基本的な文字列操作を一通り学ぶことができました。

これらの操作はプログラムを作る際によく使われる基本機能です。

文字列の長さ、部分文字列、大文字・小文字変換などをマスターすることで、より実用的なプログラムを作成する土台を築けます。

ぜひこのコードを動かしてみて、操作結果を確認しながら理解を深めてください!

<<前のページ Kotlin記事一覧 次のページ>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Kotlinのテキスト&問題集トップへ戻る
    トップページへ戻る