读入一个txt文件,然后存入到一个List当中,现在把List里面的成员 进行选择性的输出到一个新的txt里面。
Distance
Num
6032
6046
6060
LA DAME
08:04
09:14
10:24

355
La Belle
08:04
09:14
10:24
200
Lechten
16:29
17:39
18:59

Distance
Num
7021
7035
7049
输出结果是讲蓝色的数据相匹配 为   08:04 16:29
                                  09:14 17:39
                                  10:24 18:59   这样的形式  请教大侠如果写?

解决方案 »

  1.   

    简单一点的做法,新建两个List,分别存储出发时间和到达时间
    List ladame = new ArrayList();
    List lechten = new ArrayList();
    然后对你的总list进行遍历,
    将LA DAME节点后面的时间格式节点加入到ladame 中,
    将Lechten节点后面的时间格式节点加入到lechten中,
    输出文本文件的时候,
    每行分别从ladame 和lechten中取同序号节点输出即可。
      

  2.   

    1. 因为 我取得是一个简化数据 真实数据是很多类似于这样这取头一行 和 尾一行的数据 都建立列表是否太繁琐?
    2.另外
     for(int i=0; i<listElements.size();i++){
       
       
       
       File_bak.write(listElements.get(i));
       
       }
    这个listElements 就是读入txt的列表  为什么这样写不到新文本里面? 
    谢谢啊 
      

  3.   

    1 我倒是想不出更好的办法
    2 有个可能是listElements是空的。还有个可能是File_bak指向了另一文件。
      

  4.   

    正则+读文件
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.HashSet;
    import java.util.Scanner;
    import java.util.Set;public class Test {
        public static void main(String[] args) throws FileNotFoundException {
            Set<String> set = new HashSet<String>();
            
            Scanner scanner = new Scanner(new File("a.txt"));
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine().trim();
                if (line.matches("\\d+:\\d+")) {
                    set.add(line);
                }
            }
            scanner.close();
            
            System.out.println(set);
        }
    }
      

  5.   

    Set<String> set = new HashSet<String>();
            
            Scanner scanner = new Scanner(new File("a.txt"));
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine().trim();
                if (line.matches("\\d+:\\d+")) {
                    set.add(line);
                }
            }
            scanner.close();
            
            System.out.println(set);
        }
    名字更加给力啊
      

  6.   


    2 这个File_bak 指的文件是对的   循环就没进去,不知道为什么
      

  7.   

    难道除了我1楼的做法,还能有更好的做法?
    正则表达式只能帮助识别,没有办法帮助输出。
    而识别的话,因为你的数据有分段的title,使用正则表达式来识别每一行的意义不大,影响效率,且不能区分出发时间和到达时间。