我有一個看起來像這樣的字串:
val s = "123 some address (Latitude 100, Longitude 500)"
我只想抓取括號內的文本。
在沒有索引越界錯誤的情況下,有什么安全的方法可以做到這一點?
我可以做這個:
s.substring(s.indexOf("(") 1) // and then remove the last character
該值將始終在字串中,這是有保證的。
只是尋找替代方法使此代碼看起來非常可讀和明顯,并且不會拋出例外。
uj5u.com熱心網友回復:
我不太明白您為什么要排除正則運算式解決方案。它們是這個問題的完美解決方案:
final val regex = raw"\(([^)]*)\)".r.unanchored
val coord = s match
case regex(coord) => coord
或者,您可以使用字串模式:
val coord = s match
case s"$_($coord)$_" => coord
斯卡斯蒂鏈接
uj5u.com熱心網友回復:
怎么樣dropWhile:
scala> s.dropWhile(_ != '(').tail.takeWhile(_ != ')')
val res0: String = Latitude 100, Longitude 500
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/312792.html
標籤:斯卡拉
上一篇:帶有子型別的Scala3集合磁區
