04
Окт
2022

Разделение строк

Задача состоит в том, что есть файл где куча городов их регионы и т.д разделенные через множество пробелов. Пример из файла:

1 Адыгейск....Адыгея....Южный....12248....1973

2 Майкоп....Адыгея....Южный....144246....1857

3 Горно-Алтайск....Алтай....Сибирский....56928....1830

4 Алейск....Алтайский край....Сибирский....29512....1913

5 Барнаул....Алтайский край....Сибирский....612091....1730

6 Белокуриха....Алтайский край....Сибирский....14660....1803

Где "...." множество пробелов между именем, регионом и тд. У меня вопрос: как разделить эти эти объекты при помощи Scanner или других способов, чтобы я смог запихнуть к примеру: в регион не просто "Алтайский", а "Алтайский край"? Как я понял нужно учитывать, что когда один пробел scanner не должен его разделять на две составляющие. Пример программы которая считывает строки верно, но если встречается регион из двух составляющих, то он записывает вторую часть в след. переменную.

  public static void main(String[] args) throws IOException {
             
             Path pathToFile = Paths.get("/Users/oilbanana/Desktop/city_ru — копия.txt");

            try (Scanner scanFile = new Scanner (pathToFile)) {
                scanFile.useDelimiter(System.getProperty("line.separator"));
                while (scanFile.hasNext()) {
                   cityArrayList.add(parseFileString(scanFile.nextLine()));
                }
                for (var city : cityArrayList) {
                    System.out.println(city);
                }
            }
            catch (Exception e ){
                System.out.println("Exception " + e);
            }
public static  City parseFileString (String str){
        Scanner scanner = new Scanner(str);
        int number = scanner.nextInt();
        String name = scanner.next();
        String region = scanner.next();
        String district = scanner.next();
        String population =  scanner.next();
        String  foundation = scanner.next();
        return new City(name,region,district,population,foundation); ```

Источник: https://ru.stackoverflow.com/questions/1453893/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D1%80%D0%BE%D0%BA

Тебе может это понравится...

Добавить комментарий