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循环遍历集合
本文地址:https://blog.csdn.net/m0_49908639/article/details/110820482
下一篇: C++读取硬盘序列号