我想从记事本里读出形如“20071207-01 好高,坏低  20071207-02 坏高,好低”这种格式的文字,然后判断读出的字符是“好”还是“坏”还是“高”还是“低”,然后分别作不同的处理。程序应该怎么写?

解决方案 »

  1.   


    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;public class Test {
    public static void main(String[] args) throws Exception {
    char[] characterStored = null;
    BufferedReader bfr = new BufferedReader(new FileReader(new File(
    "test.txt")));
    String str = "";
    do {
    str += bfr.readLine();
    }
    while (bfr.readLine() != null);
    characterStored = str.toCharArray();
    bfr.close();
    for (char c : characterStored) {
    System.out.println(c);
    }
    }
    }/*
    2
    0
    0
    7
    1
    2
    0
    7
    -
    0
    1
     


    ,

    低*/
      

  2.   

    楼上的果然有效!谢谢dracularking兄!再请问一下,这个for语句的格式怎么这么奇怪?我从来没见过,但编译后也能正确运行,望赐教for (char c : characterStored) {
                System.out.println(c);
            }
      

  3.   

    这个是jdk1.5后有的foreach循环.
      

  4.   

    按照1楼的高人的做法,在处理中遇到一个问题,问题如下:

    str += bfr.readLine();
    读取txt文件中的内容,每次都是隔一行读取,也就是每读完一行,不是从下一行读起,而是从下两行开始读。
    例如,txt文件中的内容为
    abc
    def
    ghi读取并输出的结果为
    a
    b
    c
    g
    h
    i漏掉了def这一行。望高手指点一下原因及解决办法。
      

  5.   

    解决了,原来是readLine()每个循环执行了两次,当然会隔行。
    还是谢谢1楼的高人!