- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Iterator;
- /**
- *
- * <p>
- * ClassName GetParagraph
- * </p>
- * <p>
- * Description 使用Java完成对一篇文本的自然段落的切分,在此给出了五种文本格式作为示例,对任一种格式,该程序均可以正确切分。
- * </p>
- *
- * @author TKPad [email protected]
- * <p>
- * Date 2015年2月11日 下午1:33:03
- * </p>
- * @version V1.0.0
- *
- */
- public class GetParagraph {
- public static void main(String[] args) throws IOException {
- ArrayList<String> res = new ArrayList<String>();// 段落切分结果
- StringBuilder sb = new StringBuilder();// 拼接读取的内容
- String temp = null;// 临时变量,存储sb去除空格的内容
- // BufferedReader reader = new BufferedReader(new FileReader(new File("C:\\Users\\TKPad\\Desktop\\a.txt")));
- // BufferedReader reader= new BufferedReader(new FileReader(new File("C:\\Users\\TKPad\\Desktop\\b.txt")));
- // BufferedReader reader= new BufferedReader(new FileReader(new File("C:\\Users\\TKPad\\Desktop\\c.txt")));
- // BufferedReader reader = new BufferedReader(new FileReader(new File("C:\\Users\\TKPad\\Desktop\\d.txt")));
- BufferedReader reader = new BufferedReader(new FileReader(new File("C:\\Users\\TKPad\\Desktop\\e.txt")));
- int ch = 0;
- while ((ch = reader.read()) != -1) {
- temp = sb.toString().trim().replaceAll("\\s*", "");// 取出前后空格,之后去除中间空格
- if ((char) ch == '\r') {
- // 判断是否是空行
- if (!"".equals(temp)) {
- // 说明到了段落结尾,将其加入链表,并清空sb
- res.add(temp);
- }
- sb.delete(0, sb.length());
- } else {
- // 说明没到段落结尾,将结果暂存
- sb.append((char) ch);
- }
- }
- if (reader.read() == -1) {
- System.out.println("哈哈,你读到了末尾嘞!");
- }
- // 最后一段如果非空, 将最后一段加入,否则不处理
- if (!"".equals(temp)) {
- res.add(temp);
- }
- Iterator<String> iterator = res.iterator();
- while (iterator.hasNext()) {
- String next = iterator.next();
- System.out.println("段落开始:");
- System.out.println(next);
- }
- System.out.println("段落的个数是:" + res.size());
- }
- }
来源: http://www.phpxs.com/code/1002638/