题意:去掉字符串中连续出现的k次个0,如:当k=3时,100002000输出的结果应该是102
思路:两种做法,一种用正则表达式,把0用空字符替换掉
另一种做法是普通字符串做法,考查思维
import java.util.Scanner;
public class Main去掉连续出现的k次0 {
//利用正则表达式
//0{k}就表示出现了k次
public static String remove0(String str,int k) {
String regexp="0{"+k+"}";
return str.replaceAll(regexp, "");
}
//利用最原始的方法
public static String remove(String str,int k) {
char []arr=str.toCharArray();
int count=0;
StringBuilder sb=new StringBuilder();
for(int i=0;i<arr.length;i++) {
char c=arr[i];
if(c=='0') {
count++;
}else {
//把0加上
for(int j=0;j<count%k;j++) {
sb.append("0");
}
sb.append(c);
count=0;
}
}
//因为之前只计数了,所以最后还要补一下
for(int j=0;j<count%k;j++) {
sb.append("0");
}
return sb.toString();
}
public static void main(String[] args) {
String s=remove0("A0000000B00",3);
System.out.println(s);
}
}