Не могу разбить строку в Java - PullRequest
0 голосов
/ 26 ноября 2018

Я столкнулся с проблемой, которую я не знаю, правильно разделить эту строку.Мне нужно только RandomAdresas0 100 2018 1.

 String line = Files.readAllLines(Paths.get(failas2)).get(userInp);
            System.out.println(line);
            arr = line.split("[\\s\\-\\.\\'\\?\\,\\_\\@]+");;

Содержимое в строке:

[Pastatas{pastatoAdresas='RandomAdresas0',pastatoAukstuSkaicius=100,pastatoPastatymoData=2018, pastatoButuKiekis=1}]

Ответы [ 3 ]

0 голосов
/ 26 ноября 2018

Вот решение с использованием регулярного выражения и классов Pattern & Matcher.Полученные вами значения могут быть получены с помощью метода group(), и вы получите все значения с помощью цикла, пока find() возвращает значение true.

String data = "[Pastatas{pastatoAdresas='RandomAdresas0',pastatoAukstuSkaicius=100,pastatoPastatymoData=2018, pastatoButuKiekis=1}]";
Pattern pattern = Pattern.compile("=([^, }]*)");
Matcher matcher = pattern.matcher(data);
while (matcher.find()) {
    System.out.printf("[%d:%d] %s", matcher.start(), matcher.end(), matcher.group(1));
}

Соответствующее значение находится в группе 1, группа 0 соответствует целому регистру, например,

0 голосов
/ 26 ноября 2018

Вы можете попробовать этот код (в основном, извлечение строки между двумя разделителями):

String ss = "[Pastatas{pastatoAdresas='RandomAdresas0',pastatoAukstuSkaicius=100,pastatoPastatymoData=2018, pastatoButuKiekis=1}]";
Pattern pattern = Pattern.compile("=(.*?)[,}]");
Matcher matcher = pattern.matcher(ss);
while (matcher.find()) {
    System.out.println(matcher.group(1).replace("'", ""));
}

Этот вывод:

RandomAdresas0
100
2018
0 голосов
/ 26 ноября 2018

Удалить все символы до '{', включая '{' Удалить все символы после '}', включая '}'. Вы можете сделать то и другое, используя метод indexOf и подстроку.

Теперь у вас останетсятолько следующее:

pastatoAdresas = 'RandomAdresas0', pastatoAukstuSkaicius = 100, pastatoPastatymoData = 2018, pastatoButuKiekis = 1

После этого прочитайте эту [нить] [1]: Синтаксический анализ строкис парой ключ = значение на карте?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...