当前位置 : 主页 > 编程语言 > java >

【Java SE】String.split() 方法对空字符的处理

来源:互联网 收集:自由互联 发布时间:2022-08-15
string.split()方法对空字符的处理 String strtest = "1,2," ; String arry [] = strtest . split ( "," ); 这样得到的数组元素个数只是2两个,为什么呢,最后一个","后没有内容,它没有作为空字符串成为第


string.split()方法对空字符的处理


String strtest = "1,2,";
String arry[] = strtest.split(",");

这样得到的数组元素个数只是2两个,为什么呢,最后一个","后没有内容,它没有作为空字符串成为第三个数组元素,结尾的空字符串被丢弃了!

这个函数还有另一种重载方式 :​​public String [] split (String regex, int limit)​​ 看下说明:
limit 参数控制模式应用的次数,因此影响所得数组的长度。

  • 如果该限制​​n > 0​​,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n ,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。
  • 如果​​n 为非正​​,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。
  • 如果​​n = 0​​,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。

而对于函数 public String [] split (String regex),该方法的作用就是使用给定的表达式和限制参数 0 来调用两参数 split方法。因此,所得数组中不包括结尾空字符串.

所以如果不想让结尾的空字符串被丢弃,那么应该这样写:

String strtest = "1,2,";
String arry[] = strtest.split(",", -1);

【Java SE】String.split() 方法对空字符的处理_split


【Java SE】String.split() 方法对空字符的处理_数组_02

其实通过上面两张图可以看出,当参数limit远超实际分割次数时,效果和参数limit<0等同。



上一篇:【Java】JDBC.Connection接口
下一篇:没有了
网友评论