黑马程序员技术交流社区
标题:
split()函数分析
[打印本页]
作者:
xjqalec32
时间:
2015-4-5 20:49
标题:
split()函数分析
本帖最后由 xjqalec32 于 2015-4-5 20:53 编辑
split(String regex)是String类中的一个函数,作用是以字符串类型为分割符来切割原字符串,返回值是String[]。
但是编写了几个代码后发现,就像毕老师说的一样,位于末位的连续几个切割符并不会分割出空的String类数组成员;
例:
class Test
{
public static void main(String[] args)
{
String s="asd1asd";
String s1="1asd1asd1";
String s11="11asd1asd11";
String[] arr=s.split("1");
String[] arr1=s1.split("1");
String[] arr11=s11.split("1");
printArr(arr);
printArr(arr1);
printArr(arr11);
}
static void printArr(String[] arr)
{
for (int x=0; x<arr.length;x++ )
{
System.out.print("\'"+arr[x]+"\'"+"\t");
if (x==arr.length-1)
{
System.out.println();
}
}
}
}
结果如下:
'asd' 'asd'
'' 'asd' 'asd'
'' '' 'asd' 'asd'
可以看到末位连续切割符没起作用,这也是为什么不能用split函数来计算一个字符串中某字符串出现的次数的原因了!
作者:
jiandonn
时间:
2015-4-5 22:12
谢谢 学习了
作者:
马士基
时间:
2015-4-5 22:17
如果能探究一下原因就更好了
作者:
xjqalec32
时间:
2015-4-5 22:25
马士基 发表于 2015-4-5 22:17
如果能探究一下原因就更好了
java里这个函数就是这样定义的
作者:
快乐ABC
时间:
2015-4-5 23:40
看下java源码就知道了
作者:
natsu647
时间:
2015-4-6 14:26
学习了,原来第一位会切一个空字符串出来,末位就无视掉啊。
作者:
shw16888
时间:
2015-4-6 14:29
谢谢,学习了
作者:
chenlong
时间:
2015-4-6 14:58
看不懂啊
作者:
黑色救护车
时间:
2015-4-6 18:34
学习了!多谢分享~
作者:
小七28
时间:
2015-4-6 22:27
O(∩_∩)O谢谢分享~~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2