split()方法需要注意的一些事项

先回忆下split(),split()方法提供两种字符串分割形式,split(String regex)和split(String regex,int limit)

图一

(1)split(String regex)根据给定分隔符对字符串分割。
(2)split(String regex,int limit)根据模式匹配次数进行分割,如果设置值为n,那么将根据正则表达式匹配n-1次,得到结果数组不会大于n,最后一项为匹配分割符以后全部内容。对于普通的来说,直接调用split()方法就可以

String str="123@abc";
String[] a = str.split("@");
System.out.println("分割为; "+a[0]+","+a[1]);

但对于特殊的,比如今下午复习碰到的这个:

public static void main(String[] args) {
		String str="19.2168.0.1";
		
		String[] s1 = str.split("\\.");
		String[] s2 = str.split("\\.", 2);
		String[] s3 = str.split("\\.", 3);
		System.out.println("str的原值为;["+str+"]");
		for (String a : s1 ) {
			System.out.println("["+a+"]");
		}
		System.out.println();        
		for (String a : s2) {
			System.out.println("["+a+"]");
		}
		System.out.println();
		for (String a : s3) {
			System.out.println("["+a+"]");
		}
		System.out.println();

	}

他的split()方法是split("\.");为什么不是直接调用“ . ”呢?
因为“ . ”本身是正则表达式的一部分, 如果想用“ . ”本身, 需要进行转义才能表示它本身,所以需要用“\”进行转义,而“\”也是正则表达式的一部分,所以也需要一个“\”去转义“\”本身,所以一共要用到两个“\”,即“\.”相同的字符还有“ | ”,“+”,“*”,“\”,“/”,“[”,“]”,“(”,“)”,“^”,“$”,“-”等
今天下午就是在这个地方耗了好长时间

然后我们看一下输出结果,根据s1,s2,s3理解一下定义
输出结果
s1不难理解,只要符合条件,有多少,拆多少,直到全部拆完为止。s2和s3对比可以看出,拆分个数为n-1,很多童鞋粗心可能拆成n个。
上课摸鱼的同学看到这可能就要问了,哎,你的输出怎么放到for循环内啊?
其实这里并不是for,而是高级for循环foreach在这里插入图片描述
因为这种题目一般都会要求你把输出字符放到[]内,所以需要用高级for循环遍历集合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值