A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 嘎路的米 中级黑马   /  2015-6-30 14:17  /  669 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果String str = "abeeesaeeeed";
那么,按照ee切割,规则可以这么写String reges = "(ee)+";(对ee出现一次或者多次进行切割)。
获取的结果是ab,esa,d

但是我的字符串是这样的  String str = "abeeesaqqqqd";
我想按照ee和qq进行切割,(将出现一对对的叠词进行切割。比如:ee,qq)
想得到的结果是ab,esa,d。那么规则该这么写啊?

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

9 个回复

正序浏览
围观,还没有学到。。
回复 使用道具 举报
路过,这个还没有学到
回复 使用道具 举报
本帖最后由 守门员 于 2015-7-1 12:16 编辑
嘎路的米 发表于 2015-7-1 11:58
你运行过代码没有
我的运行结果是

不好意思,看错了,以为是组的+,看开始我理解成你只想用两个相同的叠词比如ee和qq截
回复 使用道具 举报
守门员 发表于 2015-7-1 10:09
你先看清楚,我已经说是按两个相同的切,qqqq是切两回的,你的代码意思是不管几个相同的都只切一下,这样 ...

你运行过代码没有:L
我的运行结果是



e不是还在吗- -


回复 使用道具 举报
嘎路的米 发表于 2015-7-1 10:00
我已经弄出答案了。你切的不对。我需要的是没有空位的,
正确代码在下面

你先看清楚,我已经说是按两个相同的切,qqqq是切两回的,你的代码意思是不管几个相同的都只切一下,这样会把前面的abeeesa只切剩ab sa,三个e没了
回复 使用道具 举报

我已经弄出答案了。你切的不对。我需要的是没有空位的,
正确代码在下面
  1. public class Demo {
  2.         public static void main(String[] args) throws Exception {
  3.                 String str = "abeeesaqqqqd";
  4.                
  5.                 String regex = "((.)\\2)+";
  6.                
  7.                 String[] arr = str.split(regex);
  8.                
  9.                 System.out.println("得到的数组长度为:"+arr.length);
  10.                 for(String s : arr)
  11.                         System.out.println(s);
  12.         }
  13. }
复制代码


回复 使用道具 举报
围观学习
回复 使用道具 举报
  1.                 String str = "abeeesaqqqqd";
  2.                 //按照叠词完成切割。
  3.                 //可以将规则封装成一个组。用()完成。组的出现都有编号。
  4.                 //从1开始。 想要使用已有的组可以通过  \n(n就是组的编号)的形式来获取。
  5.                 //.表示任意字符,可以根据需要使用其他的,比如\d,\w
  6.                 //下面这个表达式就是将一个任意字符封装成一组,
  7.                 //因为只有一组,所以后面是\1
  8.                 //{1}表示除了前面被封装的字符,这个组又出现一次,
  9.                 //也就是表示这个正则的意思是两个相同的字符
  10.                 String regex = "(.)\\1{1}";
  11.                 String[] arr = str.split(regex);  
  12.                 System.out.println(arr.length);
  13.                 for(String s : arr)
  14.                 {
  15.                         System.out.println(s);
  16.                 }        
复制代码
结果是


因为qqqq按照规则被切两次,所以多出一位空的

回复 使用道具 举报
还没有学到这里,这貌似已经到基础最后的部分了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马