Я получаю заголовок запроса со значением, содержащим несколько двойных кавычек. Как я разбираю его в своем Java-коде?Анализ заголовка http-запроса
вот как заголовок выглядит
рр-группы: "Администратор", "суперпользователя", "вид", "Edit"
Я получаю заголовок запроса со значением, содержащим несколько двойных кавычек. Как я разбираю его в своем Java-коде?Анализ заголовка http-запроса
вот как заголовок выглядит
рр-группы: "Администратор", "суперпользователя", "вид", "Edit"
Разделите строку либо split()
, либо StringTokenizer
, а затем обрезайте кавычки.
String header=request.getHeader("pp-groups");
for (String val : header.replace("\"", "").split(",")) System.out.println(val);
Doesnt поддерживают встроенные кавычки, хотя, не уверен, если это требуется
«StringTokenizer - это унаследованный класс, который сохраняется по соображениям совместимости, хотя его использование не рекомендуется в новом коде. Рекомендуется, чтобы каждый, кто ищет эту функцию, использовал метод split для String или пакет java.util.regex». Поэтому не предлагайте строковый токенизатор. – brunoais
split - рекомендуемый метод - «StringTokenizer - это унаследованный класс, который сохраняется по соображениям совместимости, хотя его использование не рекомендуется в новом коде. Рекомендуется, чтобы любой, кто ищет эту функцию, использовал метод split для String или пакет java.util.regex вместо." –
@brunoais haha примерно в то же время :-) –
Если вы пытаетесь сделать это вручную, а не использовать существующие рамки для HTTP-запросов, вам нужно будет разбора Стройте себя. Лучший способ сделать это - использовать регулярные выражения (http://docs.oracle.com/javase/tutorial/essential/regex/ ... важная часть этого: http://docs.oracle.com/javase/tutorial/essential/regex/groups.html). Альтернативно, вы можете потратить некоторое время на использование различных методов String, таких как .split и .substring
Почему бы не разделить и нарезать?
public static void main(String...arg) {
List<String> vals = new ArrayList<String>();
String header = "\"Administrator\",\"\"Super\" User\",,\"\",view,\"Edit\"";
for(String val : header.split(",")) {
if(val.length() > 0) {
if(val.charAt(0) == '\"' && val.charAt(val.length()-1) == '\"') {
if(val.length() > 2) { //not just a pair of quotes
vals.add(val.substring(1, val.length()-1));
}
} else {
vals.add(val);
}
}
}
System.out.println(vals);
}
Выходы:
[Administrator, "Super" User, view, Edit]
Вы можете добавить проверку ошибок, посмотрев на .chartAt (0) 'и' .chartAt (val.length()) ' –
Там обновлено, чтобы иметь дело со значениями, которые не кавычки, смешанные со значениями, которые являются значениями –
И значения, которые содержат кавычки внутри –
Вопрос связан с основной Java, а не какой-либо связанных с веб-материала. – Lion