【字符串】去除字符串中连续出现的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 private static String remove2(String s1,int k) { 2 String regex="0{"+k+"}"; 3 return s1.replaceAll(regex, ""); 4 }