Как получить подстроку после разбиения строки в Scala? - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть несколько строк, например

    val value1 = """int | 10"""
    val value2 = """double | 0.1"""
    val value3 = """duration | 60s"""

Это означает, что "int | 10" сама строка.Я хочу получить значения типа 10 , 0.1 , 60s из этих строк.Я новичок в scala, поэтому, пожалуйста, дайте мне знать, как я могу достичь этого значения.

.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Использование соответствия регулярному выражению, возможно, является наиболее гибким, хотя и не самым эффективным:

def extract(valueString: String): Option[String]  = {
  val ValueMatch = """.*\|\s*([^\s]+)\s*""".r

  valueString match {
    case ValueMatch(v) => Some(v)
    case _ => None
  }
}

Вы также можете обновить регулярное выражение, чтобы извлечь тип и значение, а затем проверить, чтозначение соответствует правильному типу и возвращает значение правильного типа.

0 голосов
/ 22 ноября 2018

Есть несколько способов сделать это.Я разделяю один такой подход.

val value1 = """int | 10"""
val value2 = """double | 0.1"""
val value3 = """duration | 60s"""

println(value1.split("\\|")(1).trim)
println(value2.split("\\|")(1).trim)
println(value3.split("\\|")(1).trim)

Результат

10

0.1

60 с

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...