データ構造 〜 第1章 配列と文字列 問題1-4

世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~

世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~

問題1-4.

文字列内に出現する全ての空白文字を"%20"で置き換える。

public class Solve {
	public static void main(String args[]){
		if(args.length == 0){
			System.out.println("パラメータを入力してください。");
			return;
		}
		String inputStr = args[0];
		char[] strArrays = inputStr.toCharArray();

                //TODO サイズ256は適当。strArraysから空白文字の数をカウントして計算する
		char[] str       = new char[256];
		
		int index = 0;
		for(int i = 0; i < strArrays.length; ++i){
			if(strArrays[i] == ' '){
				str[index++] = '%';
				str[index++] = '2';
				str[index++] = '0';
			}else{
				str[index++] = strArrays[i];
			}
		}
		System.out.println(new String(str));
	}
}

解答を見ると、文字列操作においてよく使用されるアプローチとして、文字列の最後尾から先頭に向かって編集する方法があるとのこと。