Немного кода:
/*
* 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,}", " "));
}
}
немного подредактировали

Английский
Украинский