首页 > 编程知识 正文

java位运算符的用法,java字符串分割split

时间:2023-05-03 05:11:39 阅读:9095 作者:1953

我认为String的split方法很常用,您是否遇到过以下情况:

请考虑以下代码的执行结果

publicstaticvoidmain (字符串[ ] args ) {//todo auto-generated method stub

String str1='a、b、c、a ';

String str2='a,b,c,

String str3='a,b,c,

String[] s1=str1.split (,);

String[] s2=str2.split (,);

String[] s3=str3.split (,);

system.out.println(str1长度: ) s1.Length );

system.out.println(str2长度: ) S2.Length );

system.out.println(str3长度: ) S3.Length );

}

执行结果:

为什么会出现这样的结果呢? 我找了API找到了解决方法

解决方法:

通过API可以看到,默认情况下,我们常用的split方法传递0。 解决str2输出空的解决方案是,传递的第二个参数是负数

publicstaticvoidmain (字符串[ ] args ) {//todo auto-generated method stub

String str1='a、b、c、a ';

String str2='a,b,c,

String str3='a,b,c,

String[] s1=str1.split (,);

String[] s2=str2.split ('、'、-1);

String[] s3=str3.split ('、'、-1);

system.out.println(str1长度: ) s1.Length );

system.out.println(str2长度: ) S2.Length );

system.out.println(str3长度: ) S3.Length );

}

根据搜索API,String类有两种精灵重载方法

1 .公共字符串[ ] split (字符串regex ) )。

根据给定正则表达式的匹配项拆分此字符串。

此方法的作用类似于使用指定的表达式和限制参数0调用双参数的splet方法。 因此,结果数组不包含末尾的空字符串。

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

Regex的结果

:

{ 'boo '、' and '、' foo' }

o

{ 'b '、'、'、' :and:f' }

参数: regex-分隔符正则表达式返回一个字符串数组,它是根据指定正则表达式的匹配项拆分此字符串所确定的抛出。

2 .公共字符串[ ] split (字符串regex,intlimit ) )。

根据匹配的正则表达式拆分此字符串。

此方法返回的数组包含此字符串的子字符串。 每个子字符串以与指定表达式匹配的另一个子字符串结束,或者以此字符串的末尾结束。 数组中的子字符串按其在该字符串中出现的顺序排列。 如果表达式与输入的任何部分都不匹配,则结果数组中只有一个元素,即此字符串。

由于limit参数控制模式的应用次数,因此会影响数组的生成长度。 如果此限制n大于0,则模式最多应用n-1次,数组的长度不应大于n,数组的最后一个条目包含超过最后匹配分隔符的所有输入。 如果n不为正,模式将应用尽可能多的次数,并且数组可以是任意长度。 如果n为0,则模式将应用尽可能多的次数,数组可以是任意长度,并丢弃末尾的空字符串。

例如,在字符串“boo:and:foo”中使用这些参数可以获得以下结果:

regex限制的结果

:

2

{ 'boo ',' and:foo' }

:

5

{ 'boo '、' and '、' foo' }

:

-2

{ 'boo '、' and '、' foo' }

o

5

{ 'b '、'、'、' :and:f '、'、'、' }

o

-2

{ 'b '、'、'、' :and:f '、'、'、' }

o

0

{ 'b '、'、'、' :and:f' }

调用此方法的str.split(regex,n )的格式与以下表达式的结果完全相同:

参数: regex-分隔符正则表达式limit-结果阈值。 如上所述返回。 字符串数组。 这是根据指定正则表达式的匹配项拆分此字符串所确定的抛出。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。