में विभाजक के साथ विभाजित तारों को विभाजित करने के लिए मैं |
बार विभाजक के साथ एक टेक्स्ट गुच्छा को विभाजित करने की कोशिश कर रहा हूं। प्रत्येक आईपी एड्रेस ब्लॉक में 123.123.123.123|000.000.000.000
। लेकिन प्रत्येक संख्या |
द्वारा विभाजित नहीं है।स्केल
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)
इसलिए मैंने विभाजक को Char
के रूप में रखा और यह दिखाता है कि मेरा इरादा क्या है।
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)
एकल चरित्र एक बड़ा अंतर क्यों बनाता है?
मैंने स्कैला दस्तावेज़ और StringLike.scala पढ़ा है, और कोई जवाब नहीं मिला है।
def split(separators: Array[Char]): Array[String]
def split(separator: Char): Array[String]
धन्यवाद।
[दस्तावेज़ीकरण] के अनुसार [http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.StringOps), 'split' एक char को तर्क के रूप में लेता है। – squiguy
@squiguy न केवल चार: यह वापस जा सकता है [जावा का विभाजन, जो स्ट्रिंग लेता है] (http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split (जावा। lang.String)) [regex] –
@ ओम-नाम-नाम निश्चित रूप से, उस मामले में '|' विशेष है जो स्पष्ट रूप से आपने अपने उत्तर में कहा था। – squiguy