Немного кода:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package stringproject; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; //import org.apache.log4j.Logger; /** * <p>Класс содержит методы для разделения текста на предложения и слова * по указанным разделителям. * </p> * * @author Serg Tanchenko */ public class Parser { // static Logger logger = Logger.getLogger(Parser.class); /* * Функция разделяет строку <code>inputString</code>, принятую параметром, на предложения по указаному * разделителю <code>seporatorRegEx</code>. * Возвращает типизированую коллекцию <code>List<Sentence></code> предложений. * * @param seporatorRegEx разделители предложения: <code>"[.?!] "</code> * @param inputString входящее предложение * @return <code>List<Sentence></code> */ public static List<Sentence> parserTheSentence (String seporatorRegEx, String inputString){ // logger.info("parserTheSentence"); Pattern pattern = Pattern.compile(seporatorRegEx); String [] stringOut = pattern.split(inputString); List<Sentence> sentence = new ArrayList<Sentence>(); int index = 0; for(String s : stringOut) { sentence.add(new Sentence(parserTheWord(", | |: |; ", s), index)); index++; } return sentence; } /* * Функция разделяет строку <code>inputString</code>, принятую параметром, на слова по указаному * разделителю <code>seporatorRegEx</code>. * Возвращает типизированую коллекцию <code>List<Word></code> предложений. * * @param seporatorRegEx разделители предложения (знаки препинания/пробелы) * @param inputString входящее предложение * @return <code>List<Word></code> */ public static List<Word> parserTheWord (String seporatorRegEx, String inputString){ Pattern pattern = Pattern.compile(seporatorRegEx); String [] stringOut = pattern.split(inputString); //if (Pattern.matches(seporatorRegEx, inputString)) List<Word> words = new ArrayList<Word>(); int index = 0; for(String s : stringOut) { words.add(new Word(s, index)); index++; } return words; } public static StringBuilder replaceTabulationsAndMultiSpaces (String inputString){ return new StringBuilder(inputString.replaceAll(" ?[\t]+|[ ]{2,}", " ")); } }
немного подредактировали