このページについて

このページは、paiza ラーニング内に開設されているコンテンツ「レベルアップ問題集」で取り扱われているプログラミング課題について、独自の見解を述べたものです。

見解については、paizaラーニングの規約に基づき、許可されている範囲でのみ公開していますが、その内容については paiza とは一切関係なく、また paiza の立場を反映したものではありませんのでご注意ください。

挑戦する課題

レベルアップ問題集文字列処理メニューから「文字列の挿入 (paizaランク D 相当)」を取り上げます。

以下は、問題公開 Web ページからの引用です。

問題

文字列 S , T と、整数 N が与えられるので、 S の N 文字目の後ろに T を挿入した文字列を出力してください。

入力される値

期待する出力

S の N 文字目の後ろに T を挿入した文字列を 1 行で出力してください。

考え方

Swiftにおける文字列は、C 言語の文字列と違い、文字単位でインデックス指定するのがやや厄介となる。

したがって、ここでは文字列 T を挿入される文字列 S を文字単位に分解し、文字の配列として一旦作り替える。
たとえば、文字列を str とするとき、文字の配列に変換するには map を使う。例えば次のような感じになる。

 

このようにすることで、 "ABC" だった文字列は ["A", "B", "C"] という文字(正確には1文字だけの文字列)の配列にすることが可能となる。

その作り替えた文字の配列に対し、 insert(_:at:) メソッドを使い、指定された文字列  T を挿入する。

挿入された文字列は、文字の配列になっているため、最後に joined() を使い連結して出力する。

解答例