Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Парсинг строк в файле
Список форумов
 ->  Другие технологии


На страницу Пред.  1, 2 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
angrybambr : 23
Новичок

СообщениеНоя 09, 2011 13:02 
Ответить с цитатой
Добрый день всем. Мне необходимо распарсить строку с целью получения данных из неё. Прочитал тему, но, честно говоря, не совсем въехал Sad Может быть может кто помочь конкретикой:
у меня есть строка, получаемая из файла вида:

Item1: value1|Item2: value2|Item3: value3|Item4: value4|Item5: value5

Мне нужно соответственно обработать такую строку и засунуть, к примеру, в массив String[]{value1, value2, value3, value4, value5}

Помогите с реализацией пожалуйста.
К началу Посмотреть профиль Отправить личное сообщение
bomba_flanker : 1582
Завсегдатай
Откуда: Мск/Ульяновск

СообщениеНоя 09, 2011 13:17 
Ответить с цитатой
Код:
    private static final Pattern PATTERN = Pattern.compile(": *([^|]+)");
   
    public static void main(String... args) {
        String value = "Item1: value1|Item2: value2|Item3: value3|Item4: value4|Item5: value5";
        Matcher matcher = PATTERN.matcher(value);
        while (matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }


А ещё можно распарсить все значения и засунуть в мэпу:
Код:
    private static final Pattern PATTERN = Pattern.compile("([^|]+): *([^|]+)");
   
    public static void main(String... args) {
        String value = "Item1: value1|Item2: value2|Item3: value3|Item4: value4|Item5: value5";
        Matcher matcher = PATTERN.matcher(value);
        while (matcher.find()) {
            System.out.println(matcher.group(1) + " => " + matcher.group(2));
        }
    }

_________________
Google Вам в помощь
К началу Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
angrybambr : 23
Новичок

СообщениеНоя 09, 2011 13:37 
Ответить с цитатой
bomba_flanker писал(а):
Код:
    private static final Pattern PATTERN = Pattern.compile(": *([^|]+)");
   
    public static void main(String... args) {
        String value = "Item1: value1|Item2: value2|Item3: value3|Item4: value4|Item5: value5";
        Matcher matcher = PATTERN.matcher(value);
        while (matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }


А ещё можно распарсить все значения и засунуть в мэпу:
Код:
    private static final Pattern PATTERN = Pattern.compile("([^|]+): *([^|]+)");
   
    public static void main(String... args) {
        String value = "Item1: value1|Item2: value2|Item3: value3|Item4: value4|Item5: value5";
        Matcher matcher = PATTERN.matcher(value);
        while (matcher.find()) {
            System.out.println(matcher.group(1) + " => " + matcher.group(2));
        }
    }


Спасибо огромное. Работает всё как надо. Честно говоря даже сейчас не совсем въехал в сам паттерн, надо почитать литературу и заполнить пробелы в этой области. Ещё раз спасибо!
К началу Посмотреть профиль Отправить личное сообщение
bomba_flanker : 1582
Завсегдатай
Откуда: Мск/Ульяновск

СообщениеНоя 09, 2011 13:45 
Ответить с цитатой
Пользуйтесь на здоровье!
_________________
Google Вам в помощь
К началу Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
 
Начать новую тему  Ответить на тему
Страница 2 из 2
На страницу Пред.  1, 2
Список форумов
 -> Другие технологии


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru