@SeniorDmitry

Как дернуть первое значение?

Добрый день уважаемые знатоки! Итак вопрос:
Распарсили xls документ и пробегаемся по каждой строчке (ячейка определенная) где находятся ФИО людей в одной ячейки через пробел может быть 1 человек , а может быть 10 . Написал регулярку ([А-Я]+\\s[А-Я]+){1}" и проверил в тестере регулярок все ок , цепляет первого человека (ошибся Отчества нету только Фамилия и Имя) , но на деле получаеться , что из одной ячейки попадают все ФИ людей . Скажите где ошибка и как исправить ? Ночь сижу никак разобраться не могу , что нужно сделать чтобы в каждой ячейки получать только первое совпадение.

И второй вопрос , как посчитать кол-во туристов в ячейки ?
Туристы пишутся в ячейки так:
Петров Иван
Петров Иван
- кол-во людей может быть от одного до ...

HSSFWorkbook xlsxOur = new HSSFWorkbook(new FileInputStream("../report/отчет.xls"));
        HSSFSheet listOne = xlsxOur.getSheet("Лист1");

        for(int i=0; i <= listOne.getLastRowNum(); i++){
            String xlsxList = listOne.getRow(i).getCell(1).getStringCellValue();

            Matcher accommodation1 = Pattern.compile("([А-Я]+\\s[А-Я]+){1}").matcher(xlsxList);

            while (accommodation1.find()) {
                String valueGlobal = listOne.getRow(i).getCell(0).getStringCellValue() + " " + accommodation1.group(1);
                System.out.println(valueGlobal);

            }
        }
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
^(\w+\s\w+)
или
String[] names = xlsxList.split("\\s+");
String name;
if(names.length() >= 2) name = names[0] + " " + names[1];
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы