日期:2014-05-20  浏览次数:20803 次

想用java来处理下面这个文本
完了,我又表达错了:
我的文件内容是这样:


大家好 大家好 大家好
-------------
大家好1 大家好1 大家好1
-------------
大家好2 大家好2 大家好2
//这里是空行
呵呵呵呵呵呵呵呵呵呵呵呵
-------------
呵呵呵呵呵呵呵呵呵呵呵呵1
------------
呵呵呵呵呵呵呵呵呵呵呵呵2


我要提取:
大家好1 大家好1 大家好1
大家好2 大家好2 大家好2
呵呵呵呵呵呵呵呵呵呵呵呵1
呵呵呵呵呵呵呵呵呵呵呵呵2


谢谢!

我的初步想法是先按照 空行 分割成两块,然后按照“---------”继续分割。但是想问下大家如何按照 空行来分割文本呢?

------解决方案--------------------
我才该叫你大哥啊,上面都说了 //后面的sb2等代码照猫画虎你应该搞出来,我就不全敲了.非得给您老全部代码,授人以鱼不如授人以鱼嘛。思考致富,我吧我承认其实我一点也富,小弟都还没出师呢.,下面代码你老请受用, copy运行去吧。
Java code
import java.io.*;
class s{
    
    public static void main(String[] args) throws IOException{
        StringBuffer sb1=new StringBuffer(    ),sb2=new StringBuffer();
        BufferedReader br =new  BufferedReader(new FileReader("ddd.txt"));
        String line =null;
                while( (line = br.readLine() ) != null ){
                    if ( (line!=null)&&line.trim().equals("") ) break;
                    //第二分支的时候判断if ("-------------".equals(line))
                    sb1.append(line);
//                    sb1.append("\r\n");  你只要打印的话这行就不用了
                }
                if(line.trim().equals("")){
                    while( (line = br.readLine() ) != null ){
                        sb2.append(line);
//                        sb2.append("\r\n"); 你只要打印的话这行就不用了
                    }
                }
        
        System.out.println(sb1);    //先打印下看看sb1是否正确,已转成单行
        System.out.println(sb2);    //再打印下看看sb2是否正确 ,已转成单行
        System.out.println("\r\n\r\n\r\n");
        //sb1 sb2都正确了,表明已把空行前后提取了,再继续处理-----------
        System.out.println("最终你想要的结果如下:");
        output(sb1);
        output(sb2);
    }
    
    public  static void    output(StringBuffer sb){
        String s = new String(sb);
        String ss[] = s.split("-------------");
        for(String temp:ss){
            System.out.println(temp);
        }
    }
}



/*ddd.txt 文件中内容如下:
sien
-------------
bobo
        
xixi
-------------
ioio
*/