クマの手も借りたい
馬とテニスとリラックマが好きな IT 系のエンジニアです。
Kotlin

【Kotlin入門】配列の中身を繋げるJoinと文字列を分解して配列にするSplit

以下の記事で、String 型の配列に入れている文字列を「|」の記号で繋げる処理を書きました。

あわせて読みたい
SpringBootのCharacterEncodingFilterで特定のURLパスの文字コードを変更するKotlin と Sprint Boot の組み合わせでアプリを作っていて、外部から Shift_JIS(SJIS)の文字コードでリクエ...

これは、パターンマッチングの OR の条件のためでしたが、配列の中身を特定の文字で区切って繋げたいケースは出てきます。

逆に、特定の文字列をハイフンなどの文字で区切って分割したものを配列に格納したい場合もあるでしょう。

今回はそんな便利な機能を紹介します。

繋げる時はJOIN

PHP だと簡単、implode() の関数を利用すればすぐにできます。

$l = ["リ", "ラ", "ッ", "ク", "マ"];
echo implode('', $l);

区切り文字をなしにした場合は以下のような結果になります。

リラックマ

区切り文字を「!」にするならこんな感じ。

$l = ["リ", "ラ", "ッ", "ク", "マ"];
echo implode('!', $l);

もちろん結果は以下の通り。

リ!ラ!ッ!ク!マ

Kotlin も同じく、配列の中身を連結する機能を備えています。

それが joinToString() です。

val l: List = listOf("リ", "ラ", "ッ", "ク", "マ")
println(l.joinToString(""))

この場合は区切り文字を指定していないので「リラックマ」となります。

PHP の時と同じように「!」を区切り文字にしてみます。

val l: List = listOf("リ", "ラ", "ッ", "ク", "マ")
println(l.joinToString("!"))

同じく結果は「リ!ラ!ッ!ク!マ」になりました。

Java8 が登場する前には存在しなかった機能なので、Java1.7 時代は面倒だった部分も大きそうですね。

分割する時はSPLIT

では逆に、文字列を特定の文字で分割してみましょう。

PHP の場合は explode() を使うだけなので詳細は省略します。

Kotlin の場合は String の split() を使います。

val s: String = "リ!ラ!ッ!ク!マ"
val l: List = s.split("!")
println(l)

うまく「!」でセパレートできたでしょうか。結果は以下の通りです。

[リ, ラ, ッ, ク, マ]

やさしいKotlin入門

プログラミング初心者または Kotlin 初心者向けの入門本。Android 開発ではなく Kotlin の言語を覚えてみたい方にオススメの入門本です。

Java と比較して説明される書籍が多い中、Java や他のプログラム言語を知らない人向けになるので、例えば Java はあまり詳しくないけど PHP や Python は書けるといったパターンとも相性がいいですよ。

created by Rinker
¥2,592
(2018/09/20 12:37:29時点 Amazon調べ-詳細)

あなたにオススメ