Java 使用|分隔符拆分字符串

Java 使用|分隔符拆分字符串,java,string,scala,apache-spark,Java,String,Scala,Apache Spark,“abc | xyz |”。拆分(“\\\\”)。foreach(println)===>仅显示abc和xyz println(“abc | xyz |。”.split(\\\\\”).length==>长度应为3,但显示为2 当我拆分以管道分隔的字符串时,最后一列的值为空。拆分函数正在忽略最后一个值。您应该将限制与拆分函数一起使用为-1,它将按预期为您提供 "abc|xyz|".split("\\|", -1).foreach(println) 其结果是输出为abc、xyx和' 这导致长度为

“abc | xyz |”。拆分(“\\\\”)。foreach(println)
===>仅显示
abc
xyz

println(“abc | xyz |。”.split(\\\\\”).length
==>长度应为3,但显示为2


当我拆分以管道分隔的字符串时,最后一列的值为空。拆分函数正在忽略最后一个值。

您应该将
限制
拆分
函数一起使用为-1,它将按预期为您提供

"abc|xyz|".split("\\|", -1).foreach(println)
其结果是输出为
abc
xyx
'


这导致长度为3

您应该将
限制
拆分
函数一起使用为-1,这将为您提供预期的长度

"abc|xyz|".split("\\|", -1).foreach(println)
其结果是输出为
abc
xyx
'


这导致长度为3

每个测试用例应该显示什么?
split
函数是Java的String.split,因此我将其标记为一个类似Java问题的副本,并提供了一个非常详细的答案。您对最后一个值有何期望?除了零宽度边界标记外,没有任何内容添加到拆分字符串数组中。每个测试用例应该显示什么?函数是Java的String.split,因此,我将此标记为一个类似Java问题的副本,并给出了一个非常详细的答案。对于最后一个值,您期望得到什么?除了一个零宽度的边界标记之外,这里没有任何东西,因此,分割字符串数组中没有添加任何东西。也许您可以解释为什么这样做。从纯正则表达式拆分的角度来看,第三个位置不应该有任何内容,因为在最后一个管道和字符串末尾之间只有一个边界标记。也许您可以解释一下为什么这样做。从纯正则表达式拆分的角度来看,第三个位置不应该有任何内容,因为在最后一个管道和字符串末尾之间只有一个边界标记。