天天看點

cc150:字元串:1.4

題目

程式設計寫程式,将空格全部替換為”%20”。假設字元串尾部有足夠的空間存放字元串。并且知道字元串的長度

算法

  • 掃描兩次
  • 第一次掃描有多少空格,計算出所需要的長度
  • 第二次掃描開始從反向(從後向前)編輯字元串

    http://blog.csdn.net/believejava/article/details/38682361

    http://blog.csdn.net/believejava/article/details/38682361

package com.ynu.www.tool;

public class ReplaceBlank {
    private static String testString = "hellow new world!";

    // 計算字元串中包含的空格個數
    public static int getBlankNum(String testString) {
        int count = ;
        for (int i = ; i < testString.length(); i++) {
            String tempString = String.valueOf(testString.charAt(i));
            if (tempString.equals(" ")) {
                count++;
            }
        }
        return count;
    }

    // 列印char[]數組
    public static void printArray(char[] testArray) {
        for (char i : testArray) {
            System.out.print(i);
        }
        System.out.println();
    }

    // 将字元串空格轉換為20%
    public static void replaceAllBlank(String testString) {

        if (testString == null || testString.length() <= ) {
            return;
        }
        // 字元數組初始長度
        int length = testString.length();
        // 字元數組增加長度後
        int newLength = newLength = getBlankNum(testString) * 
                + testString.length();
        char[] tempArray = new char[newLength];
        System.arraycopy(testString.toCharArray(), , tempArray, , testString.toCharArray().length);
        int indexofOriginal = length - ;
        int indexofNew = newLength - ;
        System.out.println("未替換空格時的字元串:");
        printArray(tempArray);
        while (indexofOriginal >=  && indexofOriginal != indexofNew) {
            if (tempArray[indexofOriginal] == ' ') {
                tempArray[indexofNew--] = '%';
                tempArray[indexofNew--] = '2';
                tempArray[indexofNew--] = '0';
            } else {
                tempArray[indexofNew--] = tempArray[indexofOriginal];
            }
            indexofOriginal--;
        }
        System.out.println("替換空格後的字元串:");
        printArray(tempArray);

    }

    public static void main(String[] args) {
        replaceAllBlank(testString);
    }
}