切割:记得以前想把一个字符分成几块,调用的是String中的split函数。
最初聊天室私聊的时候还以;分号作为分隔符,然后split函数把数据分成几块
但这样毕竟是有局限性的。
今天我们来看一下如何利用正则表达式来进行切割。
从API类中可以发现该方法,还是split函数。(只要看到regex就要反应过来是正则表达式)
split(String regex)
根据给定正则表达式的匹配拆分此字符串。
下面来看具体的例子:
需求:将下面的语句分割开来
String name="zhangsan,wangwu,xiaosi";
String regex=","
String[] arr=name.split(regex);
这样就可以得到每个人的姓名
但如果name是这样呢:String name="zhangsan,,,lisi,,wangwu";
这样如果不利用正则表达式多少会一些复杂
利用正则表达式String regex=",+";
+号表示一次或多次。
可以看到简化了很多。
处理叠词:介绍组的概念:为了可以让规则被重用,可以将规则(即正则表达式)封装成一个组,用()完成,组的出现都有编号,从1开始。想使用已有的组通过\n的形式调用。字符串中即“\\n”;
把erkkjislljis按叠词分开:string regex="(.)\\1+"; .表示任意字符,+表示一个或多个
替换:
String类中还有一个方法:
replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
我们来看看实际的操作
string str="dfsfdsdf4558998dfsdfsdf1231215ddd55"
将连续5位以上的数字替换为#
string regex="#{5,}";