Apple Number      : 0080075911
Calendar MMYY     : 0510
Origin            : 0164 iTunes S.a.r.l., Luxembourg
Currency          : USD
Prior Balance                          0.00
Current Month                      4,255.30
Withholding Tax                                                        0.00
GST/JCT Tax                                                            0.00
                                                       --------------------
Payment                                                            4,255.30
上面为一个txt文档内容(在txt里是没有格式的,所有换行的位置都是一个小黑方块儿),可以理解为左边部分是表头,是固定的,右边部分为数据,是可变的。现在需要一个程序,首先这个txt文件要作为参数被传进程序,其次把txt左边部分作为一个javabean,右边部分作为值分析读取出去之后赋值到此javabean中去,求此代码。(注:此javabean数据采集到之后供录入数据库用,大侠们不用考虑这块,仅采集到数据即可),先行写过。要求是最好可以用正则分析,当然不用正则也可以。关键看出代码的速度和效率。附另一个txt内容供对比和参考:Apple Number      : 0080075911
Calendar MMYY     : 0510
Origin            : 0082 Apple Pty Limited, Australia
Currency          : AUD
Prior Balance                          0.00
Current Month                        255.44
Withholding Tax                                                        0.00
GST/JCT Tax                                                            0.00
                                                       --------------------
Payment                                                              255.44

解决方案 »

  1.   

    Apple Number : 0080075911
    Calendar MMYY : 0510
    Origin : 0082 Apple Pty Limited, Australia
    Currency : AUD这部分读出来,:分隔即可。下面的,如果都是数字。正则即可。不知是否每组都符合同样的规律?
      

  2.   


    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    public class Test {
    public static void main(String[] args) {
    File file = new File("\\test.txt");
    Info info = new Info();
    readTextInfoToBean(file, info);
    System.out.println(info.getAppleNo());
    System.out.println(info.getCalendar());
    System.out.println(info.getOrigin());
    System.out.println(info.getCurrency());
    } public static void readTextInfoToBean(File file, Info info) { try {
    BufferedReader br = new BufferedReader(new FileReader(file));
    String str = "";
    while ((str = br.readLine()) != null) {
    String key = str.split(":")[0].trim();
    String value = str.split(":")[1].trim();
    if ("Apple Number".equals(key)) {
    info.setAppleNo(value);
    } else if ("Calendar MMYY".equals(key)) {
    info.setCalendar(value);
    } else if ("Origin".equals(key)) {
    info.setOrigin(value);
    } else if ("Currency".equals(key)) {
    info.setCurrency(value);
    } }
    br.close();
    } catch (IOException e) {
    System.out.println(e.getMessage());
    }
    }}
    public class Info {
    private String appleNo;
    private String calendar;
    private String origin;
    private String currency;
    public String getAppleNo() {
    return appleNo;
    }
    public void setAppleNo(String appleNo) {
    this.appleNo = appleNo;
    }
    public String getCalendar() {
    return calendar;
    }
    public void setCalendar(String calendar) {
    this.calendar = calendar;
    }
    public String getOrigin() {
    return origin;
    }
    public void setOrigin(String origin) {
    this.origin = origin;
    }
    public String getCurrency() {
    return currency;
    }
    public void setCurrency(String currency) {
    this.currency = currency;
    }
    }test.txt:
    Apple Number : 0080075911
    Calendar MMYY : 0510
    Origin : 0164 iTunes S.a.r.l., Luxembourg
    Currency : USD
      

  3.   

    回4楼:Prior Balance
    Current Month
    Withholding Tax
    GST/JCT Tax
    Payment这些数据也是要的帮忙弄完,分就是你的了
      

  4.   

    四楼
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    public class Test {
        public static void main(String[] args) {
            File file = new File("\\test.txt");
            Info info = new Info();
            readTextInfoToBean(file, info);
            System.out.println(info.getAppleNo());
            System.out.println(info.getCalendar());
            System.out.println(info.getOrigin());
            System.out.println(info.getCurrency());
        }    public static void readTextInfoToBean(File file, Info info) {        try {
                BufferedReader br = new BufferedReader(new FileReader(file));
                String str = "";
                while ((str = br.readLine()) != null) {
                    String key = str.split(":")[0].trim();
                    String value = str.split(":")[1].trim();
                    if ("Apple Number".equals(key)) {
                        info.setAppleNo(value);
                    } else if ("Calendar MMYY".equals(key)) {
                        info.setCalendar(value);
                    } else if ("Origin".equals(key)) {
                        info.setOrigin(value);
                    } else if ("Currency".equals(key)) {
                        info.setCurrency(value);
                    }            }
                br.close();
            } catch (IOException e) {
                System.out.println(e.getMessage());
            }
        }}
    public class Info {
        private String appleNo;
        private String calendar;
        private String origin;
        private String currency;
        public String getAppleNo() {
            return appleNo;
        }
        public void setAppleNo(String appleNo) {
            this.appleNo = appleNo;
        }
        public String getCalendar() {
            return calendar;
        }
        public void setCalendar(String calendar) {
            this.calendar = calendar;
        }
        public String getOrigin() {
            return origin;
        }
        public void setOrigin(String origin) {
            this.origin = origin;
        }
        public String getCurrency() {
            return currency;
        }
        public void setCurrency(String currency) {
            this.currency = currency;
        }
    }只能完成其中的一部分吧,后面那部分是不行的Apple Number : 0080075911
    Calendar MMYY : 0510
    Origin : 0082 Apple Pty Limited, Australia
    Currency : AUD
    Prior Balance 0.00
    Current Month 255.44
    Withholding Tax 0.00
    GST/JCT Tax 0.00
      --------------------
    Payment 255.44人家后面是有一部分呢
      

  5.   

    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.util.HashMap;public class test { public test() {
    try { HashMap map = new HashMap();
    FileReader in = new FileReader("c:\\a.txt");
    BufferedReader reader = new BufferedReader(in);
    String line = reader.readLine();
    String splitResult[] = null;
    while (line != null) {
    splitResult = line.split(":");
    if (splitResult.length == 2) {
    map.put(splitResult[0].trim(), splitResult[1].trim());
    } else {
    splitResult = line.trim().split(" ");
    if (splitResult.length > 1) {
    map.put(line.replace(
    splitResult[splitResult.length - 1], ""),
    splitResult[splitResult.length - 1]);
    }
    }
    line = reader.readLine();
    }
    reader.close();
    in.close();
    Object[] keys = map.keySet().toArray();
    for (int i = 0; i < keys.length; i++) {
    System.out.println(keys[i] + "=" + map.get(keys[i]));
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    } public static void main(String[] args) {
    new test();
    }}
    a.txt的内容为:
    Apple Number : 0080075911
    Calendar MMYY : 0510
    Origin : 0082 Apple Pty Limited, Australia
    Currency : AUD
    Prior Balance 0.00
    Current Month 255.44
    Withholding Tax 0.00
    GST/JCT Tax 0.00
      --------------------
    Payment 255.44执行结果:Apple Number=0080075911
    Prior Balance =0.00
    Current Month =255.44
    Origin=0082 Apple Pty Limited, Australia
    GST/JCT Tax =0.00
    Calendar MMYY=0510
    Withholding Tax =0.00
    Currency=AUD
    Payment =255.44