去掉字符串连续出现K个0的子串
生活随笔
收集整理的這篇文章主要介紹了
去掉字符串连续出现K个0的子串
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
給定一個字符串str和一個整數k,如果str中剛好有連續的k個‘0’字符出現時,把k個連續的‘0’字符刪除,返回處理后的字符串。
舉例
str = “A00B”,k = 2,返回 “AB”。
str = “A0000B000”,k = 3,返回 “A0000B”。
思路
問題
答案中在
中將char置為空字符,實際這樣打印出來 如AOOB 2–>是 A B,中間存在空格。使用repalce函數并不知道怎么取代,因為我寫成了32,23表示的是空格,這樣可以使用replace(“ ”,“”)
空字符: 字符串結尾的標志(‘\0’),實際上他的數值是0。 可以理解為標志性字符型,其使命主要是為了表明字符串已經結束。
空格字符: 空格字符( ‘’單引號中間有一個空格)的ASCII碼10進制32,16進制的0X20
兩者區別:最直觀的區別:值不同兩者的ASCII不同,空(NUL)字符碼值是0,而空格字符的碼值是32。
Integer.parseInt(String s) : 將 s 轉換成 int
解答
public class Trr {public static void main(String[] args) {// TODO Auto-generated method stub//System.out.println(removeZero("AB00A",2));System.out.println(removeKZeros("A00B00DD00A00",2).replaceAll(" ", ""));}public static String removeKZeros(String str, int k) {if (str == null || k < 1) {return str;}char[] chas = str.toCharArray();int count = 0, start = -1;for (int i = 0; i != chas.length; i++) {if (chas[i] == '0') {count++;start = start == -1 ? i : start;} else {if (count == k) {while (count-- != 0)chas[start++] =32;}count = 0;start = -1;}}if (count == k) {while (count-- != 0)chas[start++] = 32;}return String.valueOf(chas);} }總結
以上是生活随笔為你收集整理的去掉字符串连续出现K个0的子串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符串之数字子串求和
- 下一篇: java Queue常用方法