#8 Kotlinで学ぶ文字列操作の基本

Kotlinの文字列操作は、Javaの機能を引き継ぎつつ、より読みやすい埋め込みの書き方が使えます。この記事では、Kotlinにおける文字列操作の基本と、実務でよく使うメソッドを解説します。

文字列テンプレートという便利な書き方

Kotlinには「文字列テンプレート」という、変数をそのまま埋め込める書き方があります。

val name = "太郎"
val greeting = "こんにちは、$name さん"

$のあとに変数名を書くだけで埋め込めます。計算結果など、変数以外の式を埋め込みたい場合は${}を使います。

val message = "文字数は${name.length}です"

よく使う文字列操作

  • name.length 文字数を調べる
  • name.uppercase() 大文字に変換する
  • name.replace("A", "B") 文字を置き換える
  • name.trim() 前後の余分な空白を取り除く
  • name.split(",") 指定した記号で分割する

複数行の文字列を扱う

改行やインデントをそのまま含んだ文字列を書きたい場合は、3つのダブルクォート"""で囲む「生文字列」が便利です。

val message = """
    こんにちは。
    お元気ですか?
""".trimIndent()

trimIndent()を組み合わせることで、コード上のインデントを気にせず、見た目の整った複数行文字列を作れます。

文字列の比較は==でOK

Kotlinでは、Javaと違って==だけで文字列の中身を正しく比較できます。equals()を明示的に呼び出す必要はありません。

if (name == "太郎") {
    println("太郎さんです")
}

文字列がnullかもしれない場合

null安全なKotlinでは、文字列が空かnullかを一度に判定する専用の関数も用意されています。

val input: String? = null
if (input.isNullOrEmpty()) {
    println("入力がありません")
}

isNullOrEmpty()を使えば、input == null || input.isEmpty()のような長い条件式を書かずに済みます。

Kotlinならではの注意点

文字列テンプレートは非常に便利ですが、$の直後に変数名以外の複雑な式を書きたい場合は、必ず${}で囲む必要があります。囲み忘れると、意図しない文字列がそのまま表示されてしまうことがあります。また、Javaの経験がある人ほど==を「同じインスタンスかどうか」の比較だと思い込みがちですが、Kotlinの==は中身の比較(equals相当)を行い、参照そのものを比較したい場合は===を使う、という違いも覚えておきましょう。

まとめ

Kotlinの文字列操作は、$・${}を使った文字列テンプレートが特に便利です。"""による複数行文字列や、比較にも==がそのまま使えるという、Javaとの違いも覚えておきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Kotlinをもっと学びたい方には「やさしいKotlin入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本