Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ereg на Java 
:(
    Опции темы
ShurikA
Дата 13.5.2008, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Что есть по типу РНР-шного ereg в Java?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 13.5.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Нужно переделать вот это на Java:
Код

while( strlen($agent) > 0 )
    {
        if ($l = ereg($pattern, $agent, $a))
        {
            // product, version, comment
            array_push($products, array($a[1],    // Product
            $a[3],    // Version
            $a[6]));  // Comment
            $agent = substr($agent, $l);
        }
        else
        {
            $agent = "";
        }
    }



--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ivg
Дата 13.5.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 33
Всего: 81



Код

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

    private static String NAME_PATTERN = "[\\w\\s]+";
    private static String VERSION_PATTERN = "[\\d\\.]+";
    private static String COMMENT_PATTERN = "[^\\-]*";
    private static String DUMMY_PATTERN = "[^\\-]*";
    
    private static Pattern SEARCH_PATTERN;
    
     static {
        synchronized(Test.class) {
            StringBuilder b = new StringBuilder().append("(").append(NAME_PATTERN)
            .append(")-(").append(DUMMY_PATTERN).append(")-(").append(VERSION_PATTERN)
            .append(")-(").append(DUMMY_PATTERN).append(")-(").append(DUMMY_PATTERN)
            .append(")-(").append(COMMENT_PATTERN).append(")");
            SEARCH_PATTERN = Pattern.compile(b.toString(), Pattern.CASE_INSENSITIVE);
        }
    }
    
    public static class Product {
        private String name;
        private String version;
        private String comment;
        
        public Product(String name, String version, String comment) {
            this.name = name;
            this.version = version;
            this.comment = comment;
        }
        
        public String toString() {
            return "Product: " + this.name + ", version: " + this.version +
            ", comment: " + this.comment;
        }
        
    }

    public static void main(String[] args) {
        for (Product p : parseProduct("Sausage-????-1.0-???-????-nyam!! nyam!!")) {
            System.out.println(p);
        }
    }
    
    public static List<Product> parseProduct(String input) {
        List<Product> res = new ArrayList<Product>();
        Matcher m = SEARCH_PATTERN.matcher(input);
        while(m.find()) {
            if (m.groupCount() < 6) {
                throw new IllegalArgumentException("input string illegal");
            }
            Product p = new Product(m.group(1), m.group(3), m.group(6));
            res.add(p);
        }
        
        return res;
    }

}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.