Codificação de URL Java de parâmetros de string de consulta

Digamos que eu tenha um URL

http://example.com/query?q=

e eu tenho uma consulta inserida pelo usuário, como:

palavra aleatória £ 500 banco $

Quero que o resultado seja um URL corretamente codificado:

http://example.com/query?q=random%20word%20%A3500%20bank%20%24

Qual é a melhor maneira de conseguir isso? eu tenteiURLEncoder e criar objetos URI / URL, mas nenhum deles é bem correto.

questionAnswers(9)

yourAnswerToTheQuestion