文字列内に出現するすべての空白文字を"%20"で置き換えるメソッドを作成しようとしています。
ただし、文字列の後ろにはあらたに文字を追加するためのスペースが十分にあることと、その追加用スペースを除いた文字列の真の長さが与えられます。
Java
1public void replaceSpaces(char[] str, int length) { 2 int spaceCount =0,newLength,i=0; 3 //スペースの数を数える 4 for(i =0;i<length;i++) { 5 if(str[i] ==' ') { 6 spaceCount++; 7 } 8 } 9 //変換後の文字列の長さを算出 10 newLength = length + spaceCount*2; 11 str[newLength] = '¥0'; 12 13 //逆順で置き換え処理 14 for(i = length - 1;i >= 0;i--) { 15 if(str[i] == ' '){ 16 17 str[newLength - 1] = '0'; 18 str[newLength - 2] = '2'; 19 str[newLength - 3] = '%'; 20 newLength = newLength - 3; 21 } else { 22 str[newLength - 1] = str[i]; 23 newLength = newLength -1; 24 } 25 } 26 }
上のコードは解答例なのですが、どうやらヌル文字を使おうとしているようです。
しかしながら、コンパイラを通そうとすると、エラーになってしまいます。
これは解答例がおかしいのでしょうか。
コンパイルを通そうと... コンパイルエラーは確認しましたか?
コンパイルエラーのメッセージも読んでください。
どこでエラーが出ていますか?
そういった情報も付加してください。
回答3件
あなたの回答
tips
プレビュー