PR

Kotlinで文字列の間に文字を追加する方法

Androidアプリ

文字列をいじりたい…

こうした悩みを解決します。

立プロ

新卒でメーカーに入り、10年間組み込みの現場で設計を行う。
今は個人事業主として自作の組み込み機器開発や、エージェント様に紹介いただき業務委託を行っています。
C,C#,JavaScript, Vue, PHP, VBA, GAS, Kotlinなど、扱う言語が増えゆく日々。

立プロをフォローする

サンプルコード

1234を123.4にしたいとします。

var str = "1234"

var str_add_dot = str.substring(0, str.length - 1) //挿入前部分 123
                  + "." //挿入文字列
                  + str.substring(str.length - 1) //挿入後部分 4

Log.d("debug output", str_add_dot)

解説

Kotlinで文字列の間に文字列を挿入するには、挿入前後で分割して組み合わせる、と考える必要があります。

str.substring(0, str.length - 1) //substring(開始位置, 終了位置)

substringは文字列分割のメソッドです。

strという文字列を0番目からstr.length – 1番目まで取得する、という意味です。
(プログラムでは文字列の先頭は0番ですからね、初歩的な部分ですが、一応補足として)

str.lengthはstrの文字数を返してくれるメソッドです。str=1234だったら4が返ってきますね、最後尾の4じゃないですよ、4文字の4です。

ここで先走って、

うんうん、とするとstr.length – 1 = 3だから、str.substring(0,3)となって、0番目から3番目までで分割するんだなあ

と考えるのは違います。substringの終了位置の文字は含まないので、0番目から2番目までの分割となります。

これで分割前部分の123が取得できました。

そしてこれに文字列を追加します。

後は分割後の部分をくっつけてやればよいですね。

str.substring(str.length - 1)

え、さっきsubstringって引数2つじゃなかった?ミスってない?

と思われたことでしょう。

substringで引数1つの時は開始位置の指定となり、そこから文字列最後までを抜き取ります。

なので、終了位置を指定しておらず、末尾まで含めるという解釈になりますね。

これで4が取得できるので、

123.に4を足して、123.4にできたということになります。

まとめ

Kotlinで文字列の間に文字列を挿入するには、substringで挿入部前後を分割して組み合わせる、と考える必要があります。

コメント

タイトルとURLをコピーしました