Мне надо просетить данные отеля. Данные хранятся в файле 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;
}
|
Имя
Почта
|
|
Имя
Почта
|
Публикуя ответ вы принимаете условия политики конфиденциальности и соглашение.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости
Hotel{id=111111. АLongпарсится из строки только тогда, когда в этой строке лежит валидныйLongи больше ничего. – iksuy вчера