文字列をいじりたい…
こうした悩みを解決します。
サンプルコード
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で挿入部前後を分割して組み合わせる、と考える必要があります。
コメント