Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Разбор строки


Автор: naPz 25.2.2007, 13:24
Есть такой код:

Код

// line - это одна строка с файла

line = line.substring(0,line.indexOf("\""));
         
            int number, number2;
            String identifier;
        
            StringTokenizer st = new StringTokenizer(line," ifsandthen");
            while(st.hasMoreTokens()){
                    number = Integer.parseInt(st.nextToken());
                    identifier = st.nextToken();
                    number2 = Integer.parseInt(st.nextToken());

                            //Тут переменные number,identifier і
                                                           //number2 вставляю в свой клас за некоторым правилом
                                     }


Но есть проблема. Мне надо после вставки переменных number, number2, identifier в свой клас вернутся на один назад и продолжить. Будто st = st - 1.

Например если есть строка " if 5 is + and 6 is - and 7 is - then lalala "
Взять первый токен "5", записать его в клас. Если следующий токен "+", то взять еще следующий токен "6" и записать его в одно поле класа , а если "-" то записать "6" в другое поле класа.  А теперь надо начать с "6" ту же операцию, но я уже взял "6" и следующая итерация цикла пойдет с "-", а мне надо чтоб с "6", тоисть переехать на один назад а потом повторять цикл.

Раньше думал над этим вопросом, а теперь вот опять нужно.
Кто что может подсказать?

Автор: Бонифаций 25.2.2007, 14:41
а ты сначала токенизируй строку целиком, помести в токены в Collection, а затем по этому Collection и анализируй

Автор: s8e8r8g8e 26.2.2007, 00:36
вобще не надо токенизировать в старом стиле, а для большинства случаев String.split(выражение) вполне подойдёт, для сложных наеврно надо Pattern и Matcher из java.util.regex использовать

Автор: naPz 26.2.2007, 20:33
Пасиб. Все уже получилось.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)