2016-12-01 2 views
0

Даже если кто-нибудь может указать мне на аналогичный вопрос, будет оценен.Java: чтение текстового файла. Отфильтруйте выбранные слова. Вход в ArrayList

Так я есть этот текстовый файл, который имеет узлы и соединения (в основном графике), записанные в виде

узлов [ID]

и

краю [источник назначения]

Существует определенный шаблон для ввода данных в текстовый файл. Текстовый файл со всем внутри [квадратные скобки]. '

Так heirarhcy идет entire_text_inside_a [ узла [идентификатор 1] узел [ID 2] ребро [источник 1 назначение 2]]

Теперь я хочу, чтобы получить значение идентификатора и хранить в список отдельно и край в отдельном. ME, являющийся новым для ввода/вывода java, имеет общую идею ввода вывода текстового файла, но как насчет части FILTER.

Благодарим вас в Advance.

Небольшой кусочек текстового файла

node [ 
    id 152 
    label "Milan" 
    Country "Italy" 
    Longitude 9.18951 
    Internal 1 
    Latitude 45.46427 
    type "Data Centre and MAN" 
    ] 
    edge [ 
    source 0 
    target 1 
    LinkLabel "Operational network managed end-to-end" 
    ] 

Если я получаю ответ я разместим его.

+0

Чтобы отфильтровать текстовый файл, вы должны его прочитать и сохранить в строке, а затем проанализировать строку, чтобы получить нужные данные. – aleb2000

+0

Чтобы проанализировать строку, вы можете использовать регулярные выражения (регулярное выражение), [Здесь приведены уроки Oracle о регулярных выражениях] (https://docs.oracle.com/javase/tutorial/essential/regex/). – aleb2000

+0

@Abhinav От узла вы хотите «id» и от края вы хотите, какая часть ??? (источник, цель, LinkLabel). Также будет несколько узлов и ребер, как вы определили? – SachinSarawgi

ответ

0

Вы можете использовать BufferReader для проверки каждой строки для символа «[». После нахождения символа «[» проверьте, содержит ли ведущий текст «узел» или «край». Передайте соответствующий ArrayList в метод, который продолжает спускаться по строкам текстового файла, чтобы найти «id» или «source» в строке. Когда он находит строку с «id» или «source», проанализируйте эту строку, чтобы извлечь нужную информацию и добавить ее в свой ArrayList. Если строка содержит «]», выйдите из метода и вернитесь к исходному коду. Продолжайте прокручивать строки файла, пока не получите нулевую строку.

+0

Я могу использовать BufferReader для проверки каждой строки. Потрясающие! Я не знаю, как получить значение между «[» и «]». –

+0

Да, вы можете использовать метод readLine() BufferReader, который возвращает строку со всем текстом в одной строке. Каждый раз, когда вы используете readLine(), он переходит к следующей строке в файле. Строки имеют метод, называемый contains(), где вы можете искать строку для последовательности символов. В этом случае мы могли бы искать только символы «[» или «]». –

Смежные вопросы