Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
eXeShnik
18 / 18 / 3
Регистрация: 12.02.2016
Сообщений: 71
#1

Парсинг строки - Программирование Android

17.11.2016, 19:39. Просмотров 298. Ответов 15
Метки нет (Все метки)

У меня есть строка вида
{el1=val1,el2=val2...eln=valn}
Как её распарсить таким образом, что бы в арайлист занести только значения(val1,2,...,n)?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2016, 19:39     Парсинг строки
Посмотрите здесь:

Парсинг JSON-строки и вывод данных из строки - Программирование Android
Добрый день! Я разрабатываю Android-клиент, который мог бы обмениваться данными с размещенной WCf-службой. Для чтения данных из службы...

Парсинг строки - Программирование Android
Добрый день. Столкнулся с проблемой. В общем есть некая строка примерно такого содержания "{xxxx=Май 2013}" надо вытянуть из нее месяц...

Парсинг строки ввода - Программирование Android
подскажите как парсить строки, для ввода данных пользователем(если можно примером)

Парсинг html - Программирование Android
как парсить html таблицу?

Парсинг XML - Программирование Android
Решил освоить Android написал первое приложение(программка расшифровывает статус контролера банкомата из БД ошибок в формате SQLite и...

Парсинг Википедии - Программирование Android
Здравствуйте. Выручайте! нужно сделать парсинг, т.е. я ввожу слово и его значение мне выдается в листвиев (Википедия). Вот мои наработки:...

Парсинг JSON'а - Программирование Android
Здравствуйте! Недавно я на php+msql и Eclipse пробовал этот пример с сайта...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
petruchodd
90 / 90 / 8
Регистрация: 23.06.2009
Сообщений: 511
17.11.2016, 19:57     Парсинг строки #2
Java
1
String[] split(String regex)
ExFau$t
263 / 238 / 43
Регистрация: 08.05.2012
Сообщений: 1,286
17.11.2016, 19:59     Парсинг строки #3
ну первое, что приходит в уставшую голову: индекс первого =
Java
1
str.indexOf("=");
индекс первой запятой, потом substring, дальше то же самое, только от "индекс первой запятой" ищешь второе =. Ну это грубо очень конечно.

Добавлено через 1 минуту
если строка вида: {el1=val1,el2=val2,eln=valn}, то можно сплитом сначала по запятым, потом по равно.
eXeShnik
18 / 18 / 3
Регистрация: 12.02.2016
Сообщений: 71
17.11.2016, 20:09  [ТС]     Парсинг строки #4
petruchodd, Можна ли по подробнее об этом String regex

Добавлено через 3 минуты
ExFau$t, я парсил похожим образом но у меня только на 2 елемента
Java
1
2
3
4
5
6
7
8
9
String[] s1,s2;
        for(i=0;i<parser.length;i++){
            s1=parser[i].split("=");
            s2=s1[1].split(",");
            pass=s2[0];
            username=s1[2].substring(0,s1[2].length()-1);
            stringArrayList.add(username);
            stringArrayList.add(pass);
        }
Добавлено через 6 минут
ExFau$t, но почему я спросил есть ли обобщенный алгоритм
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
17.11.2016, 20:16     Парсинг строки #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Java
1
List<String> list = Arrays.asList(str.replaceAll("\\{|\\w+=|}", "").split(","));
ExFau$t
17.11.2016, 20:27
  #6

Не по теме:

самое простое в голову не пришло...

eXeShnik
18 / 18 / 3
Регистрация: 12.02.2016
Сообщений: 71
17.11.2016, 20:49  [ТС]     Парсинг строки #7
Паблито,
Syntax error in regexp pattern near index 9:
\{|\w+=|}
немогу понять почему выдает исключение
код скопировал

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 private void userChek() {
        boolean re=false;
        arrayList=user.arrayList;
        String login=logT.getText().toString(),
                password=Cryptography.md5(passT.getText().toString());
        String s="";
        for(i=0;i<arrayList.size();i++){
            s+=arrayList.get(i).toString()+"\n";
        }
        s=s.substring(0,s.length()-1);
        String[] parser=s.split("\n");
        for(i=0;i<parser.length;i++){
            List<String> list = Arrays.asList(parser[i].replaceAll("\\{|\\w+=|}", "").split(","));
            if (list.contains(login) & list.contains(password)) {
                re=true;
                break;
            }
            else re=false;
        }
        if (re) {
            Toast.makeText(this, "Hello " + logT.getText().toString(), Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, "Wrong login or password", Toast.LENGTH_LONG).show();
        }
    }
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
17.11.2016, 20:57     Парсинг строки #8
может форум убирает косые палочки
просто надо проверить внимательно символы
Парсинг строки
eXeShnik
18 / 18 / 3
Регистрация: 12.02.2016
Сообщений: 71
17.11.2016, 21:10  [ТС]     Парсинг строки #9
Паблито, user.arrayList - этот элемент береться из jsonparser.class
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
17.11.2016, 21:13     Парсинг строки #10
поверь, я тоже умею писать бессмысленные фразы

просто проверь внимательно регулярное выражение, как оно написано у меня на скриншоте и у себя в коде
eXeShnik
18 / 18 / 3
Регистрация: 12.02.2016
Сообщений: 71
17.11.2016, 21:15  [ТС]     Парсинг строки #11
Паблито, также!!!
поэтому я и скинул весь код
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
17.11.2016, 21:18     Парсинг строки #12
как этот код относится к первоначальному вопросу?
eXeShnik
18 / 18 / 3
Регистрация: 12.02.2016
Сообщений: 71
17.11.2016, 21:23  [ТС]     Парсинг строки #13
Паблито, у меня есть несколько джонс парсеров которые выдают массив в формате
котором я описал выше({el1=val1,el2=val2,eln=valn})

Добавлено через 1 минуту
Паблито, но так как количество элементов разное,я и захотел узнать,обобщённый алгоритм парсинга
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
17.11.2016, 21:23     Парсинг строки #14
ты молодец

количество разное и эта регулярка нормально работает на любом количестве
уже можно было бы давно решить вопрос, если бы из тебя не приходилось вытягивать инфу силой

за сим, сливаюсь с темы, ибо все запущено
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2016, 21:25     Парсинг строки
Еще ссылки по теме:

Парсинг сайта - Программирование Android
Доброго времени суток! Сегодня получил тему диплому... Немного при#%ел. Парсинг сайта ВУЗа. С чего нужно начать это дело?...

Парсинг Json - Программирование Android
Здравствуйте подcкажите как сделать: нужно данные из Json засунуть в массив, чтобы его дальше передавать по активностям. Json парсится в...

Парсинг XML - Программирование Android
Пробую так String data = getIntent().getStringExtra(&quot;data&quot;); try { DocumentBuilderFactory factory =...

Парсинг сайта - Программирование Android
Привет всем, тут вылезла какая то не понятная фигня... Буквально вчера все работало нормально, а сегодня перестало парсить. Суть. Я...

Парсинг тегов - Программирование Android
Здравствуйте. Есть html-страница, с которой я хочу парсить текст, заключенный в теги. Подскажите, как это сделать.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
eXeShnik
18 / 18 / 3
Регистрация: 12.02.2016
Сообщений: 71
17.11.2016, 21:25  [ТС]     Парсинг строки #15
Вот
Миниатюры
Парсинг строки  
Yandex
Объявления
17.11.2016, 21:25     Парсинг строки
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru