It is not legal to have a space in a URL. The %20 represents a space in an "encoded" URL, at least in some implementations/encoding schemes. If you are actually entering "a b c" at the end in a standard browser, and it is interpreting it as a URL, it is translating it somehow.
I do not know what your actual URL is, or your browser, or why something is (as you say) working in the browser and not in your program, etc. You don't give nearly enough detail about what is actually happening, so this is as much advice as I can offer. You could look at java's standard URLEncoder class, though it doesn't seem to translate spaces to %20 any more in its default encoding.