以前做过一个笔试题,要求是实现一个函数,对给出的字符串进行处理并返回,要求是给出的都是大写字母,对连续的多于一个的字母使用子母和字母出现的次数替换,例如给出AAK那么返回的是A2K,下面使用正则表达式完成。
importjava.util.regex.Matcher; importjava.util.regex.Pattern; publicclassReplaceTest{ publicstaticvoidmain(String[]args){ System.out.println(test("AASDDDSSSAAJJJKKKKKKFGFJJJJTTTKDDDDBBSSSA")); } publicstaticStringtest(Stringstr){ Stringregex=""; for(charbase='A';base<='Z';base++){ regex=base+"{2,}"; Patternp=Pattern.compile(regex); Matcherm=p.matcher(str); while(m.find()){ Stringmatche=m.group(); str=str.replace(matche,matche.charAt(0)+""+matche.length()); } } returnstr; } }
经过测试,符合要求