直接看源码,就不多解释了
package com.xjtu.bysj;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SplitSentence {
// 把一段完整的文字分为一句一句话,现在默认是以!|!|。|\\.|;|;|,|,开始以!|!|。|\\.|;|;|,|,结束的最短的部分
public static List<String> getSentenceFromParagraph(StringBuffer paragraph) {
String flagStr = "!|!|。|\\.|;|;|,|,";
List<String> result = new ArrayList<String>();
Pattern pattern = Pattern.compile(".*?" + "(" + flagStr + ")");
while (true) {
Matcher matcher = pattern.matcher(paragraph);
if (matcher.find()) {
result.add(matcher.group().toString());
paragraph = paragraph.replace(paragraph.indexOf(matcher.group()
.toString()), paragraph.indexOf(matcher.group()
.toString())
+ matcher.group().toString().length(), "");
} else
break;
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer buffer = new StringBuffer(
"大雁塔位于陕西省西安市城南大慈恩寺内,是全国著名的古代建筑,被视为古都西安的象征;相传是玄奘大法师从印度(古天竺)取经回来后,专门从事译经和藏经之处。因仿印度雁塔样式的修建故名雁塔。由于后来又在长安荐福寺内修建了一座较小的雁塔,为了区别,人们就把慈恩寺塔叫大雁塔,荐福寺塔叫小雁塔,一直流传至今。");
;
List<String> result = getSentenceFromParagraph(buffer);
for (int m = 0; m < result.size(); m++) {
System.out.println(result.get(m));
}
}
}
执行结果:
大雁塔位于陕西省西安市城南大慈恩寺内,
是全国著名的古代建筑,
被视为古都西安的象征;
相传是玄奘大法师从印度(古天竺)取经回来后,
专门从事译经和藏经之处。
因仿印度雁塔样式的修建故名雁塔。
由于后来又在长安荐福寺内修建了一座较小的雁塔,
为了区别,
人们就把慈恩寺塔叫大雁塔,
荐福寺塔叫小雁塔,
一直流传至今。
dml@2013.12.12