MENU

【Kotlin】レッスン1-06:文字列操作の基本を学ぼう|初心者向け活用ガイド

tggaa478@yahoo.co.jp

一つ前のページでは文字列の連結と埋め込みについて学習しました。

今回は 文字列操作 について見ていきましょう。

Lesson1:基礎文法編
 ・Lesson1-1:Kotlin学習の入り口|初めてコードを書いてみよう
 ・Lesson1-2:変数と定数を理解しよう
 ・Lesson1-3:四則演算をしよう
 ・Lesson1-4:Null安全性を理解しよう
 ・Lesson1-5:文字列の連結と埋め込みを理解しよう
 ・Lesson1-6:文字列を操作しよう ◁今回はココ
 ・Lesson1-7:import文を理解しよう
 ・確認問題1-☆1:ランダムパスワードを生成しよう
Lesson2:制御構造編
Lesson3:関数編
Lesson4:コレクション編
Lesson5:オブジェクト指向編

<<前のページ

学習記事一覧

次のページ>>

Kotlinで使える文字列操作の基本とは

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

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

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

文字列操作の定義と主な利用例

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

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

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

メソッドとは?

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

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

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

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

インデックスとは?

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

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

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

Kotlinで使える代表的な文字列メソッド

以下に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の文字列操作まとめと活用ポイント

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

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

練習問題|Kotlinで文字列の基本操作にチャレンジ

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からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

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

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

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

Q
ヒント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"が含まれているか確認して表示するコードを書いてください。
    */
}

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

練習問題の解答と解説

この問題の正解コードとその解説は以下の通りです。

クリックして開いて確認してください。

Q
正解コード
// メイン関数: 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を返す
}
Q
正解コードの解説

コードをブロックごとに分割して解説します。それぞれのコードブロックを見ていきましょう。

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

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 を使うと文字列内に特定の文字列が含まれているか確認できます。この例では「Kotlin」が含まれているため結果は true です。
  • 文法: 特定文字列の確認 (contains)

まとめ

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

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

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

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

もっと分かりやすい学習サイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいKotlin学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました