[java]java String.split()函数的用法分析
转自:http://swiftlet.net/archives/709
一、在java.lang包中有String.split()方法的原型是:
public String[] split(String regex, int limit)
二、作用:split函数是用于使用特定的切割符(regex)来分隔字符串成一个字符串数组,函数返回是一个数组。在其中每个出现regex的位置都要进行分解。
三、注意:
(1)regex是可选项。字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
(2)limit也是可选项。该值用来限制返回数组中的元素个数。
(3)要注意转义字符:“.”和“|”都是转义字符,必须得加"\\"。同理:*和+也是如此的。
如果用“.”作为分隔的话,必须是如下写法:
String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
如果用“|”作为分隔的话,必须是如下写法:
String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
(4)如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acountId=? and act_id =? or extra=?”,把三个都分隔出来,可以用:
String.split("and|or");
(5)split函数结果与regex密切相关,常见的几种情况如下所示:
public class SplitTest {
public static void main(String[] args) {
String str1 = "a-b";
String str2 = "a-b-";
String str3 = "-a-b";
String str4 = "-a-b-";
String str5 = "a";
String str6 = "-";
String str7 = "--";
String str8 = ""; split(str1);
split(str2);
split(str3);
split(str4);
split(str5);
split(str6);
split(str7);
split(str8);
}
public static void split(String demo){
String[] array = demo.split("-");
int len = array.length;
System.out.print("\"" + demo + "\" 分割后的长度为:" + len);
if(len >= 0)
{
System.out.print(",分割后的结果为:");
for(int i=0; i<len; i++)
{
System.out.print(" \""+array[i]+"\"");
}
}
System.out.println();
}
}
运行结果为:
"a-b" 分割后的长度为:2,分割后的结果为: "a" "b"
"a-b-" 分割后的长度为:2,分割后的结果为: "a" "b"
"-a-b" 分割后的长度为:3,分割后的结果为: "" "a" "b"
"-a-b-" 分割后的长度为:3,分割后的结果为: "" "a" "b"
"a" 分割后的长度为:1,分割后的结果为: "a"
"-" 分割后的长度为:0,分割后的结果为:
"--" 分割后的长度为:0,分割后的结果为:
"" 分割后的长度为:1,分割后的结果为: ""
由此可以得出:
当字符串只包含分隔符时,返回数组没有元素;
当字符串不包含分隔符时,返回数组只包含一个元素(该字符串本身);
字符串最尾部出现的分隔符可以看成不存在,不影响字符串的分隔;
字符串最前端出现的分隔符将分隔出一个空字符串以及剩下的部分的正常分隔;
最新文章
- IOS 类似微博,#话题#,@人,[表情] 网址 正则匹配
- MyBatis动态SQL详解
- windows Azure 域名绑定
- gerrit docker运行失败 chown: /var/gerrit/review_site: Permission denied 【已解决】
- openvswitch 修改dpid(datapath id)
- A标签使用javascript:伪协议
- [置顶] 数据持久层(DAO)常用功能–通用API的实现
- Ubuntu里字符编码设置
- Mysql安装与主从配置
- 网站搭建中,怎么区分ASP和PHP
- php sprintf用法
- nginx unit PHP
- Python学习之旅(十一)
- java-Timer类使用方法
- linux安装vmware
- drupal7创建自定义的panels布局
- Another app is currently holding the yum lock; waiting for it to exit.. yum被锁定无法使用
- 1. AutoEncoder介绍
- 2018/04/17 每日一个Linux命令 之 tar
- 异常:The server committed a protocol violation
热门文章
- rman备份的其它特性
- java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式和其他常见Excel中数据转换问题
- 170607、SQL Select语句完整的执行顺序
- MS-SQL数据库定时自动备份
- JSONUtil(JAVA对象/List与json互转,xml与json互转)
- 对django框架架构和request/response处理流程的分析
- andriod(十七)蓝牙profile
- mysql数据库建模Navicat
- python 实现的比特币代码 及 加密货币学习线路图及书籍资料
- [py][mx]实现按照课程机构排名,按照学习人数排名