このページについて

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

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

挑戦する課題

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

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

問題

大文字と小文字のアルファベットが混ざった文字列 S が与えられます。
S の小文字を全て大文字に、大文字を全て小文字にした文字列を出力してください。

入力される値

  • 文字列 S が 1 行で与えられます。

期待する出力

S の小文字を全て大文字に、大文字を全て小文字にした文字列を 1 行で出力してください。

考え方

入力された文字列の文字一つひとつに対し、大文字か否かを判別し、大文字だったら小文字、小文字だったら大文字に変換する。

Swift の場合、 Character 型に isUppercase というプロパティがあり、その値をチェックすることにより、該当する文字が大文字か否かを判別することが可能である。

入力された文字列を for-in 文で回す場合、取り出された文字列は String.Element 型であるため、一度 String 型に変換した上 Character 型に変換した後、 isUppercase を使うことになる。

解答例

メソッドチェーンを使えばこのような感じ。