java字符串拆分函数

java字符串拆分函数,java,string,split,Java,String,Split,在java文档中 我们可以找到以下例子: 例如,字符串“boo:and:foo”使用这些表达式生成以下结果 正则表达式结果 o{b'、“”、“:和:f”} 第二个结果是什么?从b到oo,或oo和:和:f?当您使用分隔符o且两个分隔符相邻时,将生成一个空字符串。因此,例如,如果您有一个字符串foo::bar,并使用:将其拆分,您将得到{“foo”、“”、“bar”},因为拆分时,::之间的空格被视为空字符串 如果您希望在没有任何空字符串的情况下拆分,请查看 结束空字符串 当split被赋予零或无限

在java文档中

我们可以找到以下例子:

例如,字符串
“boo:and:foo”
使用这些表达式生成以下结果

正则表达式结果

o
{b'、“”、“:和:f”}


第二个结果是什么?从
b
oo
,或
oo
:和:f

当您使用分隔符
o
且两个分隔符相邻时,将生成一个空字符串。因此,例如,如果您有一个字符串
foo::bar
,并使用
将其拆分,您将得到
{“foo”、“”、“bar”}
,因为拆分时,
::
之间的空格被视为空字符串

如果您希望在没有任何空字符串的情况下拆分,请查看

结束空字符串

当split被赋予零或无限制参数时,它会丢弃尾随的空字段


Ref:

当您使用分隔符
o
且两个分隔符相邻时,将生成一个空字符串。因此,例如,如果您有一个字符串
foo::bar
,并使用
将其拆分,您将得到
{“foo”、“”、“bar”}
,因为拆分时,
::
之间的空格被视为空字符串

如果您希望在没有任何空字符串的情况下拆分,请查看

结束空字符串

当split被赋予零或无限制参数时,它会丢弃尾随的空字段


请注意,对于正则表达式引擎,字符之间的位置也会计算在内。因此,正则表达式引擎将
boo:and:foo
字符串视为

<EMPTY>b<EMPTY>o<EMPTY>o<EMPTY>:<EMPTY>a<EMPTY>n<EMPTY>d<EMPTY>:<EMPTY>f<EMPTY>o<EMPTY>o<EMPTY>
               ^between^                                                       ^between^
boo:and:foo
^在^^之间^

由于第一个
^between^
不在字符串的末尾,
split
在结果中保留空位置(字符串)。由于默认情况下
int limit
参数为
0
,因此尾部的空元素将作为结尾被删除。如果传递
-1
(非正值),则结果数组中将出现所有尾随的空元素。请参阅参考。

注意,对于正则表达式引擎,字符之间的位置也会计算在内。因此,正则表达式引擎将
boo:and:foo
字符串视为

<EMPTY>b<EMPTY>o<EMPTY>o<EMPTY>:<EMPTY>a<EMPTY>n<EMPTY>d<EMPTY>:<EMPTY>f<EMPTY>o<EMPTY>o<EMPTY>
               ^between^                                                       ^between^
boo:and:foo
^在^^之间^

由于第一个
^between^
不在字符串的末尾,
split
在结果中保留空位置(字符串)。由于默认情况下
int limit
参数为
0
,因此尾部的空元素将作为结尾被删除。如果传递
-1
(非正值),则结果数组中将出现所有尾随的空元素。请参阅参考资料。

那么最后一个oo呢。结尾没有空字符串标记。@omkarsirra是的,结尾的空字符串会脱落(请看下面的内容进行深入讨论,那么最后一个oo呢?。结尾没有空字符串标记。@omkarsirra是的,结尾的空字符串会脱落(请看下面的详细讨论,返回两个字符串,'b',':和:f',但为什么找不到原点“”?我知道“+”表示“o”必须至少出现一个time@DavidP如果使用拆分(“o+”,-1),则为,然后三个字符串返回'b',':和:f'和',不知道会发生什么…为什么最后一个''被计数,但是'o''o'之间的''不被计数?这个返回两个字符串'b',:和:f',但是为什么找不到原点''?我知道'+'意味着'o'必须至少出现一个time@DavidP如果使用拆分(“o+”,-1),则为,然后三个字符串返回'b',':和:f'和',不知道会发生什么…为什么最后一个''会被计数,而'o''o'之间的''不会被计数?