Мне надо просетить данные отеля. Данные хранятся в файле txt, в таком виде:
1001,3,50.0,true,false,13.12.2017,Hotel{id=111111, country='Ukraine', city='Kiev', street='Hrehsatik', name='Sputnik'}
Я считываю файл построчно, разбиваю сплитом по запятым и присваиваю элемент массива объекту. Для того, чтобы просетить своему объекту отель, я сделал отдельный метод поиск отеля по его id. Id отеля лежит в шестой ячейке массива и когда я вставляю эту ячейку как параметр в метод поиска отеля, то выскакивает вот такая ошибка:
Exception in thread "main" java.lang.NumberFormatException: For input string: "Hotel{id=111111"
Как мне это исправить ? Вот часть моего кода:
public static Collection findRooms(Filter filter)throws Exception{
if (filter == null)
throw new BadRequestException("This filter - " + filter + " does not exist." );
LinkedList<Room> rooms = new LinkedList<>();
LinkedList<Room> roomsFinish = new LinkedList<>();
DateFormat format = new SimpleDateFormat("dd.MM.yyyy");
try (BufferedReader br = new BufferedReader(new FileReader(PATH_ROOM_DB))){
String line;
while ((line = br.readLine()) != null) {
String[] fields = line.split(",");
System.out.println(Arrays.toString(fields));
Room room = new Room();
room.setNumberOfGuests(Integer.parseInt(fields[1]));
room.setPrice(Double.parseDouble(fields[2]));
room.setBreakfastIncluded(Boolean.parseBoolean(fields[3]));
room.setPetsAllowed(Boolean.parseBoolean(fields[4]));
room.setDateAvailableFrom(format.parse(fields[5]));
System.out.println(fields[6]);
room.setHotel(findHotelById(Long.parseLong(fields[6])));
rooms.add(room);
int index = 0;
for (Room el : rooms) {
if (el.getNumberOfGuests() == filter.getNumberOfGuests() || el.getPrice() == filter.getPrice() || el.isBreakfastIncluded() == filter.isBreakfastIncluded()) {
if (el.isPetsAllowed() == filter.isPetsAllowed() || el.getDateAvailableFrom() == filter.getDateAvailableFrom()) {
roomsFinish.add(el);
System.out.println(el);
break;
}
}
index++;
}
}
} catch (FileNotFoundException e){
throw new FileNotFoundException("File does not exist");
} catch (IOException e) {
throw new IOException("Reading from file " + PATH_ROOM_DB + " failed");
}
System.out.println(roomsFinish.size());
return roomsFinish;
}
Имя
Почта
|
Имя
Почта
|
Публикуя ответ вы принимаете условия политики конфиденциальности и соглашение.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет! Есть небольшая проблема, не отправляется имейл из сервлетаИспользуется java 1
Каждый раз, когда звоню по SIP через свой сервер, то ловлю INVITE, создаю запрос с полями CSeq, Call-id и тд,и псоле мне нужно отправить инвайт на другой...
По запросу на сервер приходит строка, которую я делю и вывожу на экран:
Все время выбивает при инвайте обратно на пользователя(кинул два метода: форвард - на пользователя, кому звонят, и второй на пользователя,...
Hotel{id=111111
. АLong
парсится из строки только тогда, когда в этой строке лежит валидныйLong
и больше ничего. – iksuy вчера