#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿