对java中String.split(String regex)方法的一个应用(改进?)

        我在最近编程的过程中使用了String.split(String regex)这个方法,发现当一个字符串包含许多连续重复的regex时,split(String regex)方法就会产生很多空字符串,比如以下代码:

//创建一个字符串
String str1=new String("jaaaaaavaaaaaa");
//以“a”为分界线分割str1
String[] strArray=str1.split("a");
//输出strArray以及每一项字符串的长度
for(int i=0;i<strArray.length;i++)
    System.out.println(strArray[i]+strArray[i].length());

        这段代码旨在用"a"来分割str1,并输出分割产生的子字符串和子字符串的长度。

        由输出结果可以看出,split(String regex)方法排除了"v"之后的“a”之间产生的空字符串,但在"j"和"v"的范围内,两个“a”之间仍然会产生长度为0的空子字符串。

        这种现象是符合split(String regex)自身作用规律的,但是在java程序的编写和实际应用中,我们常常只需要从原字符串中分割产生非空的子字符串,而不希望看到空子字符串的产生。

        所以我利用split(String regex)编写了一个新方法,用来返回不含有空字符串的子字符串数组,分享给大家。

//除去空字符串的字符串切割
public static String[] custSplit(String origin,String regex)
{
    String[] firstArray=origin.split(regex);
	List<String> strList=new ArrayList<String>();
	for(int i=0;i<firstArray.length;i++)
	{
		if(firstArray[i].length()!=0)
			strList.add(firstArray[i]);
	}
	String[] resultArray=strList.toArray(new String[strList.size()]);
	return resultArray;
}

        方法的参数1:待分割的字符串

                   参数2:作为分割线的字符串(正则表达式)

        这个方法的思路非常简单,先用split(String regex)方法分割字符串,再从中将非空元素存入列表,最终将列表转化为字符串数组并返回。

        这个方法思路简单,很容易编写。不过作为编程小白的我,第一次用java语言编写实用的小方法,还是很有纪念意义的。故上传博客,记录下自己的想法,也希望能够帮助到更多像我一样的初学者。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值