Tôi đang cố gắng tách một chuỗi văn bản bằng bộ tách thanh |
. 123.123.123.123|000.000.000.000
cho mỗi khối địa chỉ IP. Nhưng mỗi số được tách không theo |
.Tách chuỗi bằng dấu phân cách được tách thành từng ký tự trong 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)
Vì vậy, tôi đặt dấu phân cách là Char
và nó hiển thị những gì tôi dự định.
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)
Tại sao nhân vật duy nhất tạo nên sự khác biệt lớn?
Tôi đã đọc tài liệu Scala và StringLike.scala và không có câu trả lời.
def split(separators: Array[Char]): Array[String]
def split(separator: Char): Array[String]
Cảm ơn.
Theo [tài liệu] (http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.StringOps), 'split' lấy một Char làm đối số. – squiguy
@squiguy không chỉ Char: nó có thể trở lại [phân chia của java, mà có String] (http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split (java. lang.String)) [regex] –
@ om-nom-nom Chắc chắn, trong trường hợp đó '|' là đặc biệt mà rõ ràng là những gì bạn đã nói trong câu trả lời của bạn. – squiguy