【字符串】去除字符串中连续出现的k个0

 去除字符串中连续出现的k个0
 例如:A00000B00 -->A00B00
思路:
 方法1:扫描字符数组,如果遇到0,就计数,
 当遇到非0的对之前扫描到的0进行处理,将count%k个0追加到字符数组中,
 还要考虑如果0出现在末尾,仍需要追加进入字符数组;
 方法2:使用Java API
 正则表达式,利用字符串的replaceAll();

 1 private static String remove1(String src,int k) {
 2         char []arr=src.toCharArray();
 3         StringBuilder sb=new StringBuilder();
 4         int count=0;
 5         for (int i = 0; i < arr.length; i++) {
 6             char c=arr[i];
 7             if(c=='0'){
 8                 count++;
 9             }else{
10                 for (int j = 0; j < count%k; j++) {
11                     sb.append("0");
12                 }
13                 sb.append(c);
14                 count=0;//执行该语句,即遇到不为0的字符
15             }
16         }
17         //处理最后出现的0
18         for (int j = 0; j < count%k; j++) {
19             sb.append("0");
20         }
21         return sb.toString();
22     }
方法1
1 private static String remove2(String s1,int k) {
2         String regex="0{"+k+"}";
3         return s1.replaceAll(regex, "");
4     }
方法2

 

posted on 2021-01-27 22:16  丁不煮  阅读(179)  评论(0编辑  收藏  举报

导航