Write a method to replace all spaces in a string with '%20'

With these two changes I got the output: the%20dog

1) Change space count to 2 [since length already includes 1 of the 3 characters you need for %20]

newLength = length + (spaceCount * 2);

2) Loop should start on length

for(i = length; i >= 0; i--) {

You are passing the length as 6, which is causing this. Pass length as 7 including space. Other wise

for(i = length - 1; i >= 0; i--) {

will not consider last char.


public String replace(String str) {
    String[] words = str.split(" ");
    StringBuilder sentence = new StringBuilder(words[0]);

    for (int i = 1; i < words.length; ++i) {
        sentence.append("%20");
        sentence.append(words[i]);
    }

    return sentence.toString();
}

Tags:

Java

Arrays

Char