Swift Playgroundsで学ぶiOSプログラミング

コンピューターを理系のためだけのものにさせないための「文字列」

文●柴田文彦 編集●吉田ヒロ

2016年10月10日 17時00分

文字列同士なら、「足し算」によって複数を結合して1つの文字列にすることができます

 ただし演算子で操作できるのは足し算だけで、残念ながら、引き算で一部を取り除いたりすることはできません。ちなみに文字列も、ほかの変数と同じように、print()によってPlaygroundのコンソールに表示させることができます。

 文字列は、文字列同士だけでなく、数値や、数値を表す変数と結合することができます。その際には、数値を人間が読める文字列に変換しながらくっつけるために、ちょっと変わった書き方をする必要があります。それは数値や変数を「()」でくくり、さらにその前に「\」(バックスラッシュ)を付けるというものです。その状態で数字は目に見える文字列として扱えるので、「""」の中に通常の文字列と混ぜて書くことができます。

文字列を表す""の中に数値や変数を入れるときには、\()でくくって、その場で文字列化することができます(注:バックスラッシュは半角)

 このような書き方は、変数に代入する場合だけでなく、print()の中でも使えるので、複数の値をまとめて確認したい場合などにも便利です。

文字列は配列?

 今回の最初のほうで、「文字が一列に並んだもの」と書きましたが、だとすれば「文字列は文字の配列なのではないか」と思った人がいるかもしれません。それは鋭い洞察ですが、半分は正しくて、半分は間違っています。確かに文字列は文字が配列のように並んだものですが、以前に述べたようにSwiftは型に厳しい言語なので、文字列と文字の配列は、同じようなデータ構造になっているとしても、まったく同じもとして扱うことはできないのです。

 とはいえ、かなり近いものとして扱うことは可能です。まず、文字列の後ろに「.characters」と付けることで、文字列を構成する個々の文字を取り出せるようになります。これでもまだ配列とは違うのですが、for-inループで使えます。

文字列の後ろに「.characters」を付けると、あたかも文字の配列のようにfor-inループで1文字ずつ取り出せます

 ここまでくると、ほとんど配列ではないかと思えかもしれませんが、あと1歩です。配列のように大かっこ([])の中にインデックスの数値を書いて1要素(1文字)ずつ取り出せるようにするには、Swiftがこだわる型を変換して、本当の「文字の配列」にしてあげなければなりません。実は文字型は「Character」です。ということはその配列は「[Character]」ですね。Swiftで型を変換するには、型の名前の後ろにかっこを付けて、その中に変換前のものを書きます。これで、任意のインデックスを指定して、文字列の中の文字を1つずつ取り出せるようになりました。

文字列の後ろに「.characters」を付けたものをさらに[Character]()でくくると、正式に配列として扱えるようになります

次回の予定

 これまで、この連載では、Xcode版のPlaygroundを使ってきました。そうこうしているうちに、iOS 10もリリースされ、いよいよSwift PlaygroundsもApp Storeから無料ダウンロードして利用できるようになりました。そこで、次回からはiPad版を使っていくことにします。iPad版のSwift Playgroundsを使うには、当然ながらiPadが必要ですが、iOS 10が必要となるなるため、ハードウェアの条件がやや厳しくなっています。第4世代以降のiPad(iPad miniならiPad mini 2以降)でないとインストールできませんが、ここまでお付き合いいただいたみなさんには、ぜひ該当するiPadを用意していただき、一緒にSwiftを学んでいきたいと思います。

mobileASCII.jp TOPページへ

mobile ASCII

Access Rankingアクセスランキング