簡體   English   中英

在Scala中使用字符串拆分和char參數之間的區別?

[英]difference between Split with a string and char argument in Scala?

String和Char參數都生成相同的輸出。 Scala中帶字符串參數的split和char參數有什么區別?

使用String參數-

scala> "hello world".split(" ")
res0: Array[java.lang.String] = Array(hello, world)

使用Char參數-

scala> "hello world".split(' ')
res1: Array[String] = Array(hello, world)

從Java類繼承的String參數。 作為Char參數Scala使用的是它自己的類,稱為StringLike類。 它的意思是

scala> "hello world".split(" ")

使用Java的Split方法。

scala> "hello world".split(' ')

使用Scala中的Split方法。

接受字符串的版本將字符串解釋為regex 這可能導致某些高度混亂的行為。 例如看

scala> "ab.cd".split(".")
res1: Array[java.lang.String] = Array()

“。” 是一個匹配所有內容的正則表達式,因此所有字符都是拆分字符,結果為空。 這是java.lang.String中有疑問的設計決策。

采用char的scala擴展方法僅與文字char匹配。 因此,它不僅速度更快,而且更加可預測:

scala> "ab.cd".split('.')
res2: Array[String] = Array(ab, cd)

換句話說,當使用字符“ Hello world” .split('')進行拆分時,將使用單個字符拆分輸入。 例如,您可以分割為“ a,b,e,f”等。 但是,當您使用字符串方法時,可以用單詞分割字符串,例如在顯示“ Cat”一詞的任何時候。

因此,在用單個字符分割字符串時,請使用“ hello world” .split('')。

如果您是一個天才,可以將一個基因拆分為多個子基因,那么如果您希望介於GTA基因GTACATFAGTAFADGTA之間的所有內容,都可以使用“ Hello world.split(“ GTA”)。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM