去掉字符串连续出现的k次
*移除字符串中连续出现的K个0
可以用扫描字符数组的解法,但是用正则表达式更为快捷
package _4字符串;
public class k去掉字符串连续出现的k次 {
public static void main(String[] args) {
String a = "a0000aa00f0k00000000a";
System.out.println(zehengze(a,2));
System.out.println(remove(a, 2));
}
private static String zehengze(String a, int k) {
// TODO Auto-generated method stub
String regexp = "0{" + k + "}";
return a.replaceAll(regexp, "");
}
static String remove(String a, int k) {
char[] arr = a.toCharArray();
StringBuilder sb = new StringBuilder();
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == '0') {
count++;
} else {//不是很理解题意 把count-k改为count%k
for (int j = 0; j < count - k; j++) {// bu走
sb.append('0');
}
sb.append(arr[i]);
count = 0;
}
}
for (int j = 0; j < count % k; j++) { // 防止字符串最后面是连续几个出现的0
sb.append('0');
}
return sb.toString();
}
}