powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Списки, параметризация
4 сообщений из 4, страница 1 из 1
Списки, параметризация
    #38576038
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
У меня есть задание распарсить предложение на слова и символы.
решил сделать это через параметризацию.
Но возникла проблема.
вот собственно под спойлером код.
ParserType это энамы из которых беруться регулярки.
Сама проблема: Дело в том что в классе TextParser, в строке
Код: java
1.
 returnList.add(f.newInstance(matcher.group()));    


он записывает пустые элементы. в коде ест поытки создать какие-то конструкторы, что бы омжно было туда запихнуть как в класс Sentense или Lexema обхект как строку, но они тщетны.

То есть в класса Sentence (списке) храняться слова Lexema
F в класса Lexema (списке) храняться символы Сharacter

Может быть кто понял это все и может тыкнуть в то место где я не прав и что надо сделать, подсказать?
Вроде как я понимаю, что нужно в каждом класса воздать соответсвующий конструктор, но какой.. уже голова не хочет соображать. Может кому не влом и он просмотрит свежим взглядом да и подскажет чего-нибудь
Заранее спасибо за помощь.
Text Parser
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class TextParser {

    private static final Logger LOG = Logger.getLogger(TextParser.class);
    public <T> void objectParser(StringBuilder s, ParserType type, LinkedList<T> returnList,Factory<T> f) {
        returnList = new LinkedList<>();
        Pattern pattern = Pattern.compile(type.getRegex());
        Matcher matcher = pattern.matcher(s);
        while (matcher.find()) {
            returnList.add(f.newInstance(matcher.group()));    
        }
        System.out.println(returnList);
    }
}



Sentence
Код: 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.
public class Sentence extends LinkedList<Lexema> {
    private StringBuilder sb = new StringBuilder();
   TextParser tp = new TextParser();
    public Sentence(Object str) {
        sb.append(str);
    }
    public Sentence() {
    }
    public void parse() {
       tp.objectParser(sb, ParserType.LEXEMA, this, new Factory<Lexema>() {
            @Override
            public Lexema newInstance() {
                return new Lexema();
            }
            @Override
            public Lexema newInstance(Object o) {
                return new Lexema(o);
            }
        });
        System.out.println(this.size());
        for (int i = 0; i < this.size(); i++) {
            this.get(i).parse();
        }
    }
}



Factory
Код: java
1.
2.
3.
4.
public interface Factory<T>{
   T newInstance();
   T newInstance(Object o);
}




Runner
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public class Ranner{
    public static void main(String[] args) {
        StringBuilder s = new StringBuilder("The raged for years: \"Who is the next Michael Jordan?\""
                + " Robinson Canos name has never come up in that discussion. Until now, that is.");
        Sentence t = new Sentence(s);
        t.parse();
    }
}



Lexema
Код: 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.
26.
public class Lexema extends Item<Character>{
StringBuilder sb = new StringBuilder();
    public Lexema(Object str) {
        sb.append(str);
    }
    public Lexema() {
    
    }
    public void parse() {
        getParserObject().objectParser(sb, ParserType.SYMBOL, this,   new Factory<Character>() {

      
        

            @Override
            public Character newInstance() {
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            @Override
            public Character newInstance(Object o) {
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }
        });
    }
}


...
Рейтинг: 0 / 0
Списки, параметризация
    #38576148
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Часть исходника потерял. Запусти это (SqlRuPost.jar) рядом с папкой src. А лучше ещё архив с исходниками приложи.
...
Рейтинг: 0 / 0
Списки, параметризация
    #38576165
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avp.mk,

Вот архив с исходниками, немного грязновато, но суть понять думаю можно
...
Рейтинг: 0 / 0
Списки, параметризация
    #38576390
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex021,

топик закрыт, проблема решена
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Списки, параметризация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]