最近参加了一个面试,问到了如何在一个字符串中连续相同字符去重,想了想用正则表达式应该可以轻松实现。可是由于长时间没有编码了,而且由于原先的工作用到的比较少。具体的自己就不会写正则表达式用到的类名什么的了。总之就是面试没有过了。回来再网上搜了搜,本来以为可以很容易找到相应的内容,可是找了半天没有找到我想要的结果。后来在某个相似问题求助中看到了相应答案,不过还是有所区别,根据该问题的解决思路,最后实现了.
代码如下:
public class Test {
public static void main(String[] args) {
String str = "111111kakkkkkkkkkkwwwaacbbdAAA";
String s = "";
int count=0;
Matcher m = Pattern.compile("(\\w)\\1*").matcher(str);
while (m.find()) {
s += m.group().subSequence(0, 1);
}
System.out.println(s);
}
}
超级简单……