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

ながみえ

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

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

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では特定の機能を実現するために メソッド と呼ばれる仕組みを使います。メソッドはある特定の動作を実行するための命令のまとまりです。

例えば「文字列の長さを調べる」や「特定の文字が含まれているか確認する」など、よく使う操作がメソッドとして多数用意されています。

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

// メソッドを使用する際の書き方
val 処理結果 = 対象オブジェクト.メソッド名(引数)

// メソッドの使用例
val text = "Kotlin勉強中!"
val length = text.length // 定数textにlengthメソッドを使用
print(length)
  • 対象オブジェクト: メソッドを適用するデータ(ここでは文字列)。
  • メソッド名: 実行したい操作の名前。
  • 引数: 必要に応じてメソッドに渡すデータ(ない場合もる)。

インデックスとは?|要素にアクセスするための位置番号

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

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

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

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

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

[index]による特定文字の取得

これはメソッドではありませんが、文字列の特定位置にある文字を取得します(インデックスは0から始まります)。

val text = "Kotlin"
println(text[0]) // 出力: K
println(text[1]) // 出力: o
println(text[2]) // 出力: t
println(text[3]) // 出力: l
println(text[4]) // 出力: i
println(text[5]) // 出力: n

lengthメソッド|文字列の長さを取得

lengthメソッドを使うと、文字列の長さ(文字数)を取得できます。

val text_1 = "Kotlin"
val text_2 = "I love Kotlin!"
println(text_1.length) // 出力: 6
println(text_2.length) // 出力: 14

substringメソッド|文字列の部分抜き出し

substringメソッドを使うと、文字列の一部を抜き出すことができます。

抜き出す範囲はインデックスで指定します。

val text = "Kotlin"
// .substring(抜き出し始めのインデックス番号, 抜き出し終わり後の最初のインデックス番号)
println(text.substring(0, 3)) // 出力: Kot
println(text.substring(2, 4)) // 出力: tl

例えば(0, 3)と指定する場合、抜き出し範囲は[0]と[1]と[2]までの3つであり、[3]は含まれないことに注意しましょう。

isEmptyメソッド|文字列の空欄確認

isEmptyメソッドを使うと、文字列が空かどうかを判定できます。

val text_1 = ""
val text_2 = "Kotlin"
println(text_1.isEmpty()) // 出力: True
println(text_2.isEmpty()) // 出力: False

toUpperCaseメソッドとtoLowerCaseメソッド

toUpperCaseメソッドを使うと文字列を全て大文字に変換でき、toLowerCaseメソッドを使うと小文字に変換できます。

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

trimメソッド|文字列前後の空欄削除

trimメソッドを使うと、文字列の前後にある空白を削除します。

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

containsメソッド|特定の文字列を含むか判定

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

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

文字列操作を組み合わせたコード例

以下にこれらの基本構文を組み合わせた具体的な例を示します。

例1: trimとtoUpperCaseの組み合わせ

与えられたユーザー名から不要な空欄を削除し、全て大文字にして出力します。

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

例2: substringとtoLowerCaseの組み合わせ

与えられた文字列から特定の部分を抜き出し、全て小文字にして出力します。

val message = "Programming"
val sub = message.substring(3, 8)  // "gramm"
val lower = sub.toLowerCase()
println(lower) // 出力: gramm

まとめ

この記事では、Kotlinの文字列操作に便利なさまざまなメソッドについて紹介しました。

これらのメソッドを活用することで、文字列のチェックや加工、検索などが直感的かつ効率的に行えるようになります。

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)

まとめ

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

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

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

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

Q
サイト改善アンケート & ご指摘/ご質問

本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などを アンケート 形式でお伺いしています。

また記事の内容に関する ご指摘ご質問 もお待ちしています。

1.このサイトをどのように活用していますか?また、今後どのように活用したいですか?
5.気になっているサービス・商品があれば教えてください。
※ 特定の記事に関する内容の場合は、記事番号(レッスン〇-〇)をご記入願います。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました