剑指offer-3(替换空格)
生活随笔
收集整理的這篇文章主要介紹了
剑指offer-3(替换空格)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
實現一個方法,把一個字符數組里面的空格全部替換為“20%”。
?
思路:
首先呢,要先獲取字符數組中有多少個空格以及字符數組中字符的長度,計算出替換后的長度;然后,讓一個虛擬指針indexOfNew指想新長度大小的那個下標位置,讓另一個虛擬指針indexOfOriginal指向原字符長度大小的那個下表位置,判斷indexOfOriginal下表位置的是不是為空格,如果是,indexOfNew下表位置以及前面兩個位置依次放入0,2,%;indexOfOriginal前移。繼續判斷;如果不是空格,直接把indexOfOriginal處的字符放到indexOfNew下表位置。
?
代碼:
public class Test04 {/** length為字符數組的總容量*/public static void replaceBlank(char[] string,int length){if(string ==null || length<1){return;}int originalLength = 0;//字符的實際長度int blankLength = 0;//空格的個數int i = 0;while(i < length && string[i] != '\u0000'){++originalLength;if(string[i]==' '){++blankLength;}i++;}//新的長度為字符長度加上空格個數乘以2,本來是20%三個字符,因為還要去一個空格,相當于每遇到一個空格,長度就需要增加兩個int newLength = originalLength + blankLength * 2;if(newLength > length)return;int indexOfOriginal = originalLength;int indexOfNew = newLength;while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal){if(string[indexOfOriginal] == ' '){string[indexOfNew--] = '0';string[indexOfNew--] = '2';string[indexOfNew--] = '%';}else{string[indexOfNew--] = string[indexOfOriginal];}--indexOfOriginal;}for (int j = 0;j<newLength;j++) {System.out.print(string[j]);}}public static void main(String[] args) {char[] str = new char[20];str[0] = 'h';str[1] = 'e';str[2] = 'l';str[3] = 'l';str[4] = 'o';str[5] = ' ';str[6] = 'w';str[7] = ' ';replaceBlank(str,str.length);}}?
轉載于:https://www.cnblogs.com/javatalk/p/10129516.html
總結
以上是生活随笔為你收集整理的剑指offer-3(替换空格)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么推荐大家买iPhone 12
- 下一篇: 【15】docker