Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.57 KB | None | 0 0
  1. case class Document(serial: String, number: String) {
  2.  def normalize: Document = {
  3.     this match {
  4.       case Document(serial, "") if serial.count(_.isLetterOrDigit) <= 2 => Document("", serial)
  5.       case Document(serial, "") => splitSerial(serial)
  6.       case other => other
  7.     }
  8.   }
  9.  
  10.   private def splitSerial(serial: String): Document = {
  11.     val newSerial = serial.foldLeft("") { (left, char) =>
  12.       if (left.count(_.isLetterOrDigit) < 2) left :+ char else left
  13.     }
  14.     val newNumber = serial.drop(newSerial.length)
  15.     Document(newSerial, newNumber)
  16.   }
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement