Расшифровка строки запроса URI в Java

Мне нужно декодировать URI, который содержит строку запроса; ожидаемое поведение ввода / вывода выглядит примерно так:

abstract class URIParser
{       
    /** example input: 
      * something?alias=pos&FirstName=Foo+A%26B%3DC&LastName=Bar */
    URIParser(String input) { ... }
    /** should return "something" for the example input */
    public String getPath(); 
    /** should return a map 
      * {alias: "pos", FirstName: "Foo+A&B=C", LastName: "Bar"} */
    public Map<String,String> getQuery();
}

Я пытался использоватьjava.net.URI, но кажется, что он декодирует строку запроса, поэтому в приведенном выше примере у меня осталось «alias = pos & FirstName = Foo + A & B = C & LastName = Bar», поэтому существует неопределенность, является ли «&» разделителем запросов или символом в компонент запроса.

Редактировать: Я только что попробовалURI.getRawQuery () и это не делает кодировку, поэтому я могу разделить строку запроса с&но что тогда мне делать? Javascript имеетdecodeURIComponentЯ не могу найти соответствующий метод в Java.

Какие-либо предложения? Я бы предпочел не использовать какие-либо новые библиотеки.

Ответы на вопрос(4)

Ваш ответ на вопрос