像下面的订单信息,我只想保留机器码哪一行,应该怎么处理。
订单号:4201274用户名:陈泽森机器码:265fa5149aeedb3f
手机:13632914799
下单时间:2013-05-06 19:47:57
支付时间:2013-05-06 19:49:58
处理时间:2013-05-06 19:49:58订单号:4201179用户名:chriswang机器码:d76ce2ebffbe01ed
手机:13618281031
下单时间:2013-05-06 18:48:07
支付时间:2013-05-06 19:47:51
处理时间:2013-05-06 19:47:51订单号:4201117用户名:想象机器码:f69b64bcb25f7c17
手机:13890095353
下单时间:2013-05-06 18:09:39
支付时间:2013-05-06 18:11:50
处理时间:2013-05-06 18:11:50订单号:4200941用户名:mccherry机器码:009a4f54fb950760
手机:15806088969
下单时间:2013-05-06 16:27:19
支付时间:2013-05-06 16:28:14
处理时间:2013-05-06 16:28:14订单号:4200792

解决方案 »

  1.   

    读文件,判断每一行是否以“机器码”开头是的话就保存下来import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;public class FileReaderTest { static List<String> machineCodes = new ArrayList<String>();

    public static List<String> readFile(File f) throws IOException {
    if (f == null || !f.exists()) {
    return null;
    }
    List<String> list = new ArrayList<String>();
    String encoding = "UTF-8";
    InputStreamReader read = new InputStreamReader(new FileInputStream(f),
    encoding);
    BufferedReader br = new BufferedReader(read);
    String line = null;
    while ((line = br.readLine()) != null) {
    if(line.startsWith("机器码")){
    machineCodes.add(line);
    }
    list.add(line);
    }
    br.close();
    read.close();
    return list;
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    try {
    FileReaderTest.readFile(new File("c:/temp/test.txt"));
    for(String s : FileReaderTest.machineCodes){
    System.out.println(s);
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }}打印:
    机器码:265fa5149aeedb3f
    机器码:d76ce2ebffbe01ed
    机器码:f69b64bcb25f7c17
    机器码:009a4f54fb950760
      

  2.   

    用正则提取一下就可以了。。
    输入字符串str
    用下面的方法提取public static void regexFind(String str){
    String regex="(?s)(机器码:\\w+)[^\\w]";
    Matcher m = Pattern.compile(regex).matcher(str);
    while(m.find()){
    System.out.println(m.group(1));
    }
    }
      

  3.   

    用bat/shell就可以实现,不用写代码这么麻烦
      

  4.   

    代码实现 无非就是java的文件读取,每行进行匹配