【Scala】 ゼロサプレスの実装

こんにちは、たくじろう(@takujiro_0529)です。

今回は、Scalaでの『ゼロサプレス』の実装をしてみました。

方法は2通り試してみまして、
1つ目は正規表現での実装。
2つ目は『dropWhile』を使った実装。

ベストプラクティスではない可能性がありますので、ベストプラクティスを知っている方がいれば教えて下さい!
スポンサーリンク




実装

正規表現の利用

これは『Java 正規表現』で調べてみたところ、このような実装方法でしたので、それをScalaに応用した形になります。

正規表現で実装すると、正規表現でマッチしなかった場合(引数が”123”の場合など)の処理(9〜12行)を実装する必要があります。

そんなに手間ではないとは思いますが、次の『dropWhile』ではその部分が省けます。

『dropWhile』の利用

『dropWhile』を使った実装をみていきます。

あえてvalを使い1ライナーで書いてますが、かなり短いコードで実装できました。

『dropWhile』の簡単な説明ですが、文字列の一文字目から順に{}内の条件式に当てはめていき、条件がtrueの場合にその文字を削除すします。

そして、falseになった場合に残りの文字列を返します。

正規表現の実装と比べると引数の文字列の先頭が「”0”」でなかった場合の処理を省くことができました。

まとめ

私が趣味で実装してみたものなので、実際の現場ではもっと考慮がなされたコードが描かれているのではと思いますが、一応ゼロサプレスが完成しました。

もし、『dropWhile』でのゼロサプレスに問題がある場合には、ご指摘いただけると嬉しいです。

よろしくお願いします。

byたくじろう(@takujiro_0529)

スポンサーリンク

スポンサーリンク



シェアする

  • このエントリーをはてなブックマークに追加

フォローする