黑马程序员技术交流社区
标题:
关于String中split的用法问题?
[打印本页]
作者:
HM许涛
时间:
2013-4-18 14:58
标题:
关于String中split的用法问题?
以下两段代码,一个显示2、一个显示3。不是很理解原因。个人猜测是否有隐藏的开头之类的部分,但是找不到相关文档说明,希望有知道的不吝赐教。
class Noname1
{
public static void main(String[] args)
{
String str="a黑马程序a训练营";
sop("数量= "+str.split("a").length);
}
static void sop(String str)
{
System.out.println(str);
}
}
执行结果显示为 3。
class Noname1
{
public static void main(String[] args)
{
String str="黑马程序a训练营a";
sop("数量= "+str.split("a").length);
}
static void sop(String str)
{
System.out.println(str);
}
}
结果为 2。
作者:
刘胜寒
时间:
2013-4-18 15:14
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,
所得数组中不包括结尾空字符串。
哥们懂了没....
作者:
HM许涛
时间:
2013-4-18 20:08
刘胜寒 发表于 2013-4-18 15:14
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给 ...
嗯,谢谢哈,不是太理解,我再去学习下正则表达式
作者:
黄玉昆
时间:
2013-4-19 13:09
其实在java中很多方法在涉及到头和尾的操作时,都是只要头,不要尾的,比如说String中的toString()方法
这个spli()t也是一样的,你在切割的时候,当a在头部的时候,你切割获得了一个空字符串对象,即"",这个不是null,也不是一个空格,是一个空字符串。所以是三个。
而第二种,a是放在了结尾了,即使切到了结尾的空字符串,但是并不返回,即取不到,所以返回的字符串数组只有两个元素。所以长度为2
作者:
黄玉昆
时间:
2013-4-20 14:47
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2