之前在博客中已经叙述过这个问题,但是最近一次笔试中居然有碰到了这个知识点,而且还做错了,囧!学艺不精啊。题目大概是这样的:
String s2="this is a test";
String sarray[]=s2.split("/s");
System.out.println("sarray.length="+sarray.length);
这个输出是什么还是编译出错?我想那个split方法中的参数要是"s"的话,输出一定是4了,就是将原来字符串分成了数组{"thi","i","a te","t"},但是原题split方法中的参数要是"/s",那么这个参数到底是嘛意思呢,实验后输出结果居然是1。
原因还得深究啊。
java.lang.string.split,即split 方法,它实现的功能是将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 格式为:
stringObj.split([separator,[limit]])
其中stringObj是必选项,表示要被分解的 String 对象或文字。该对象不会被 split 方法修改。 separator 为可选项,表示字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。 limit 为可选项,该值用来限制返回数组中的元素个数。 值得注意的是: split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解,separator 不作为任何数组元素的部分返回。
一个例子
String srcstring="this is a about split test";
String stringarray[]=srcstring.split(" ");
在每个空格字符处进行分解
for(String stemp:stringarray){
System.out.println(stemp);
}
String srcstring1=" this is a about split test";//有n个空格的话,分成的数组长度为n+1
//如果字符串中有多个空格时,则两个空格间认为是没有字符,结果字符串数组中该位置为空。
String stringarray1[]=srcstring1.split(" ");
for(String stemp:stringarray1){
System.out.println(stemp);
}
这样输出结果为
this
is
a
about
split
test
另一个:
this
is
a
about
split
test
另外一个例子
String srcstring="this is a about split test";
String stringarray[]=srcstring.split(" ",2);
在每个空格字符处进行分解
for(String stemp:stringarray){
System.out.println(stemp);
}
输出结果为
this
is a about split test
看看下面这个
String ipstring="59.64.159.224";
String iparray[]=ipstring.split(".");