文档章节

关于java中split的使用

zchuanzhao
 zchuanzhao
发布于 2015/09/29 23:13
字数 721
阅读 88
收藏 0

最近一次笔试中居然有碰到了这个知识点,而且还做错了,囧!学艺不精啊。题目大概是这样的:

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);
}

这样输出结果为

Java代码

this
is
a
about
split
test


另一个:

this
is
a
about
split
test

另外一个例子

Java代码

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(".");
for(String stemp:iparray){
    System.out.println(stemp);
}


这个输出为空,为什么呢?

因为 public string[] split(string regex) 这里的参数的名称是regex ,也就是 regular expression (正则表达式)。这个参数并不是一个简单的分割用的字符,而是一个正则表达式,以下是split 方法的实现代码: public string[] split(string regex, int limit) { return pattern.compile(regex).split(this, limit); } split 的实现直接调用的 matcher 类的 split 的方法。我们知道,“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。 只要将

String iparray[]=ipstring.split(".");

改为

String iparray[]=ipstring.split("\.");

就可以了。 

© 著作权归作者所有

zchuanzhao

zchuanzhao

粉丝 51
博文 244
码字总数 145913
作品 1
福州
程序员
私信 提问

暂无文章

JMM内存模型(一)&volatile关键字的可见性

在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

走向人生巅峰的大路
17分钟前
36
0
你对AJAX认知有多少(2)?

接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

理性思考
26分钟前
4
0
正则表达式基础(一)

1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转...

清自以敬
29分钟前
4
0
idea中@Data标签getset不起作用

背景:换电脑以后在idea中有@data注解都不生效 解决办法:idea装个插件 https://blog.csdn.net/seapeak007/article/details/72911529...

栾小糖
35分钟前
4
0
Apache Kudu 不能删除不存在的数据

使用Apache Kudu客户端,对KafkaConnect Sink 进行扩展。 使用的Apache Kudu 的Java 客户端。突然有天发现作业无法提交,一直报错。 后来才发现这是Kudu自身的一种校验机制。为了忽略这种校验...

吐槽的达达仔
45分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部