Java實現文本按照自然段落進行切分
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 wangx89@126.com
- <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());
} }</pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!