У меня есть поток данных Строки, которая может иметь значениеСтрока Java Split/разбор проблема с использованием регулярных выражений
system_id "2.2.2.1"
component_id 6
sequence_number 11
timestamp 1459202982
kv {
key "val1"
}
kv {
key "val2"
}
kv {
key "val3"
}
system_id "2.2.2.1"
component_id 6
sequence_number 15
timestamp 1459202982
kv {
key "val4"
}
kv {
key "val5"
} and so on....
Все я заинтересован это значение ключа, которые знач1, val2, val3 ....
Я использую сканер, как показано ниже,
scan = new Scanner(new File("kvfiles/file1")).useDelimiter("\\s+kv\\s+\\{\\s+"); //To ignore any thing before "kv"
while (scan.hasNext()) {
String str = scan.next();
finalString = str.split("\\s+\\}")[0];
}
Этот код работает отлично, если файл начинается с «кв {», но в описанном выше случае, когда файл запускается с ниже значения упоминанием, анализатор дает ошибку.
system_id "2.2.2.1"
component_id 6
sequence_number 11
timestamp 1459202982
Любая идея, как я могу пропустить этот блок данных?
Примечание: этот блок данных может появляться иногда после некоторых тегов «kv {}», все, что мне нужно, это игнорировать его всякий раз, когда это происходит.
Просьба сообщить подробности об ошибке. –
Работает ли [эта демонстрация] (http://ideone.com/oQxT22), как и ожидалось? –