Как читать каждую строку после: - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть TXT-файл, подобный следующему:

Start: Here is a random introduction.

Items:
Item 1
Item 2
Item 3
Item 4

End: Here is a random outro.

Я хочу получить Элемент 1, Элемент 2, Элемент 3, Элемент 4 и поместить их в структуру данных, такую ​​как HashMap.Как мне этого добиться?

Вот что я пробовал до сих пор:

public static void main(String[] args) {
        Scanner scanner = null;

        while (scanner.hasNext()) {
            String line = scanner.nextLine();

            if (line.startsWith("Start:")) {
                String time = line.substring(6);
            }

            if (line.matches("Items:") && scanner.hasNextLine()) {
                String items = line;
            }
        }
    }

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Следующий код должен работать:

public static void main(String[] args) {
    Scanner scanner = new Scanner(TestCdllLogger.class.getResourceAsStream("/test.txt"));

    while (scanner.hasNext()) {
        String line = scanner.nextLine();

        if (line.startsWith("Start:") || line.startsWith("End:") || line.startsWith("Items:") || line.startsWith(" ") ||line.isEmpty() ) {
            continue;
        }

        System.out.println(line);
    }
}

игнорирует все строки, начинающиеся с Start:, End:, Items: и пустые или пустые строки.

Я знаю, чтокод записывает строки в стандартный вывод, а не в файл, но это может быть изменено вашим собственным

0 голосов
/ 09 декабря 2018

[Обновленный ответ] Таким образом, другой ответ на этот вопрос полезен, если известны точные слова, которые следует игнорировать, но при наличии большого файла с большим количеством строк это решение будет более точным.

    public static void main(String[] args) {
    // TODO Auto-generated method stub
     String line = "";
     String[] parts = null;
     HashMap<String, String> hashmap=new HashMap<String, String>();

     try {
            BufferedReader br = new BufferedReader(new FileReader("Zoo.txt"));
            //line = br.readLine();

            while (line != null) {
            line = br.readLine();
           //System.out.println(line.toString());
          if(line!=null){
                //System.out.println(line);

              if(line.contains("Item")&& line.substring(0, 5).compareTo("Item ")==0){        
                    addToHashMap(line,hashmap);
                    System.out.println(line);

              }
          }     
}
            br.close();
            }catch(IOException ioe){
                System.err.println(ioe.getMessage());

}

}

private static  void addToHashMap(String line, HashMap<String,String> hashMap) {
    // TODO Auto-generated method stub
    Random random=new Random();
    hashMap.put(Integer.toString(random.nextInt(100)), line);       

     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...