Если вы хотите удалить пустые параметры из строки запроса, вы можете использовать это регулярное выражение \w+=[^&]+
для сопоставления только тех пар ключ-значение, чья часть значения не пуста.Например, если у вас есть следующая строка,
key1=value1&key2=value2&key3=&key4=value4
Затем сопоставьте только URL-адреса, используя приведенное выше регулярное выражение, и отфильтруйте остальные.Этот код Java должен вам помочь,
String s = "key1=value1&key2=value2&key3=&key4=value4";
Pattern p = Pattern.compile("\\w+=[^&]+");
Matcher m = p.matcher(s);
StringBuilder sb = new StringBuilder();
while(m.find()) {
sb.append(m.group()).append("&");
}
System.out.println(sb.substring(0,sb.length()-1));
Печатает это, у которого значение key3 удалено, поскольку оно было пустым,
key1=value1&key2=value2&key4=value4
Используя потоки Java8, вы можете использовать этот один код лайнера для достижения,
String s = "key1=value1&key2=value2&key3=&key4=value4";
String cleaned = Arrays.stream(s.split("&")).filter(x -> Pattern.matches("\\w+=[^&]+", x)).collect(Collectors.joining("&"));
System.out.println(cleaned);
Отпечатки,
key1=value1&key2=value2&key4=value4