Sto provando a dividere un gruppo di testo con il separatore di barre |
. 123.123.123.123|000.000.000.000
a ciascun blocco di indirizzi ip. Ma ogni numero non è diviso per |
.Dividere le stringhe con il separatore diviso in ogni carattere in Scala
scala> "123.123.123.123|000.000.000.000".split("|")
res30: Array[java.lang.String] = Array("", 1, 2, 3, ., 1, 2, 3, ., 1, 2, 3, ., 1, 2, 3, |, 0, 0, 0, ., 0, 0, 0, ., 0, 0, 0, ., 0, 0, 0)
scala> "123.123.123.123".split("|")
res33: Array[java.lang.String] = Array("", 1, 2, 3, ., 1, 2, 3, ., 1, 2, 3, ., 1, 2, 3)
così ho messo il separatore come Char
e si vede quello che volevo.
scala> "123.123.123.123|000.000.000.000".split('|')
res31: Array[String] = Array(123.123.123.123, 000.000.000.000)
scala> "123.123.123.123".split('|')
res32: Array[String] = Array(123.123.123.123)
Perché il singolo carattere fa un'enorme differenza?
Ho letto Scala doc e StringLike.scala e non ho ricevuto risposta.
def split(separators: Array[Char]): Array[String]
def split(separator: Char): Array[String]
Grazie.
Secondo la [documentazione] (http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.StringOps), 'split' prende un Char come argomento. – squiguy
@squiguy non solo Char: può tornare a [java's split, che prende String] (http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split (java. lang.String)) [regex] –
@ om-nom-nom Sure, in tal caso '|' è speciale che è ovviamente quello che hai detto nella tua risposta. – squiguy