Как взять два однозначных и двухсловных ввода из входного файла

avatar
Utkarsh Atri
8 апреля 2018 в 09:19
40
0
0

У меня есть входной файл, который выглядит примерно так:

Cinema 1 A 15
Cinema 2 X 5
Session 1 09:00 Toy Story
Session 1 14:30 Ratatouille
Session 2 09:00 Up
Request 1 1 09:00 10
Request 2 1 09:00 12
Request 3 1 09:00 10
Change 1 1 14:30 7 
Cancel 6
Print 1 14:30 

где «Сеанс 1 09:00» и «История игрушек» — это 4 разных входа для сеанса, номера кинотеатра, времени и фильма.

У меня проблема с извлечением последнего ввода, так как некоторые входные данные состоят из двух слов, а некоторые из одного.

Чтобы получить только одно слово, я использую метод split().

Scanner sc = new Scanner(new File(args[0]));

            while(sc.hasNext()){
                String param = sc.nextLine();
                String[] in = param.split(" ");
                ......

                ......
            }

, что дает мне вывод, например: enter image description here

Как мы видим, в выводе есть только Toy.

Как это исправить?

Будем признательны за любую помощь

Источник
Bghaak
8 апреля 2018 в 09:27
0

Поскольку вы разделяете символы пустого места, заголовки, такие как «История игрушек», вернут более одного токена. Если вы уверены, что заголовок фильма всегда находится на фиксированной позиции, вы можете перечислить токены до этой позиции (например, от in[1] до in[2]), а в качестве названия взять все остальное (от in[3] до в[в.размере()]

PeterMmm
8 апреля 2018 в 09:29
1

Мы сможем помочь лучше, если вы опубликуете весь код. Нам непонятно, как вы получаете свой выход. Есть много способов сделать это...

Utkarsh Atri
8 апреля 2018 в 09:53
0

Привет @Bghaak, теперь я изменил входной файл (раньше я помещал только частичный). Не могли бы вы, ребята, взглянуть сейчас? Спасибо :)

Utkarsh Atri
8 апреля 2018 в 09:54
0

я использую разделение на каждой строке, а затем каждый элемент используется в качестве входных данных для различных функций в программе.

Ответы (0)