このページについて
このページは、paiza ラーニング内に開設されているコンテンツ「レベルアップ問題集」で取り扱われているプログラミング課題について、独自の見解を述べたものです。
見解については、paizaラーニングの規約に基づき、許可されている範囲でのみ公開していますが、その内容については paiza とは一切関係なく、また paiza の立場を反映したものではありませんのでご注意ください。
挑戦する課題
レベルアップ問題集の文字列処理メニューから「日時データの変換その2 (paizaランク C 相当)」を取り上げます。
以下は、問題公開 Web ページからの引用です。
入力される値
1 |
yyyy/MM/dd hh:mm |
- 日時を表す文字列が 1 行で与えられます。
- yyyy は 4 桁で西暦年を表します。 4 桁未満の場合の上位桁は 0 となります。例) 0734, 0021
- MM は 2 桁で月を表します。2 桁未満の場合の上位桁は 0 となります。例) 09
- dd は 2 桁で日にちを表します。2 桁未満の場合の上位桁は 0 となります。例) 02
- hh は 2 桁で時を表します。2 桁未満の場合の上位桁は 0 となります。例) 07
- mm は 2 桁で分を表します。2 桁未満の場合の上位桁は 0 となります。例) 01
期待する出力
5 行で年・月・日・時・分を順に出力してください。
1 2 3 4 5 |
yyyy MM dd hh mm |
考え方
基本的には過去問と同じ考え方である。
ただし、今回の場合はさらに区切り文字が増えているので、このような場合は split(whereSeparator:) を使った方が確実でむしろ明快な記述となる。
解答例
1 |
readLine()!.split(whereSeparator: { "/: ".contains($0)}).forEach{ print(String($0)) } |