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()); } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11011.html