CSI Bug修改记录

需求:

在表A:S2s中有3个字段,cust_id,form_date和isTransmit,在表B:Flag中,有3个字段:cust_id、startDate和endDate,请找出S2s中的某些记录,约束条件如下:

1、该笔记录的cust_id存在于表Flag中,即S2s.cust_id=Flag.cust_id;

2、该笔记录的isTransmit值为N;

3、该笔记录的form_date在表Flag的startDate和endDate之间,即form_date>=startDate且form_date<=endDate;

4、form_date格式为YYYYMMDD,startDate和endDate格式为YYYY-MM-DD;

 

由于Production环境的资料需要保密,只能提供表A的3个自动和表B的3字段,现在客户已经导出到txt文档,每笔记录包含3个字段,以空格分开。

 

下面我们分步骤开实现如何测试客户提供的数据:

1、创建2个类,将文本文件中的数据实例化对象;

public class S2s {

    private String cust_id;
    private String form_date;
    private String isTransmit;

    /**
     * @return the cust_id
     */
    public String getCust_id() {
        return cust_id;
    }

    /**
     * @param cust_id the cust_id to set
     */
    public void setCust_id(String cust_id) {
        this.cust_id = cust_id;
    }

    /**
     * @return the form_date
     */
    public String getForm_date() {
        return form_date;
    }

    /**
     * @param form_date the form_date to set
     */
    public void setForm_date(String form_date) {
        this.form_date = form_date;
    }

    /**
     * @return the isTransmit
     */
    public String getIsTransmit() {
        return isTransmit;
    }

    /**
     * @param isTransmit the isTransmit to set
     */
    public void setIsTransmit(String isTransmit) {
        this.isTransmit = isTransmit;
    }

}
 
public class Flag {
    private String customer_id;
    private String startDate;
    private String endDate;

    /**
     * @return the customer_id
     */
    public String getCustomer_id() {
        return customer_id;
    }

    /**
     * @param customer_id the customer_id to set
     */
    public void setCustomer_id(String customer_id) {
        this.customer_id = customer_id;
    }

    /**
     * @return the startDate
     */
    public String getStartDate() {
        return startDate;
    }

    /**
     * @param startDate the startDate to set
     */
    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    /**
     * @return the endDate
     */
    public String getEndDate() {
        return endDate;
    }

    /**
     * @param endDate the endDate to set
     */
    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

}
 

 

2、分行读取文本文件,并将每条记录序列化为对象,存储到List中:

我们先来看看txt文档中的片段:

S223821747       2008-09-05 2008-09-15
A227577478       2008-09-05 2008-09-15
L123462919       2008-09-05 2008-09-15
S124039554       2008-09-05 2008-09-15
F224800911       2008-09-05 2008-09-15
A225667273       2008-09-05 2008-09-15
F223968423       2008-09-05 2008-09-15
Z100098584       2008-09-05 2008-09-30
H122644620       2008-09-05 2008-09-30
U221392263       2008-09-05 2008-09-30
A227669499       2008-09-05 2008-09-30
N224708641       2008-09-05 2008-09-30
B290023255       2008-09-05 2008-09-30
C221114157       2008-09-05 2008-09-30
T220902657       2008-09-05 2008-09-30

 从中我们可以看到,3个字段以空格分隔,其中第一个字段和第二个字段中间有多个空格;

    FileReader reader = new FileReader(flagFileName);
    BufferedReader br = new BufferedReader(reader);
    String s1 = null;
    while ((s1 = br.readLine()) != null) {
         //TODO
    }

 3、将得到的字符串分割为字符数组(String[]):

s2 = s1.split(" ");

 4、通过打印字符数组可知s2[0]、s2[6]、s2[7]为3个字段的位置,将3个字段的值放入对象并存储到List中:

f = new Flag();
f.setCustomer_id(s2[0]);
f.setStartDate(s2[7]);
f.setEndDate(s2[8]);
flagList.add(f);

 该方法的完整代码如下:

     /**
     * 从Flag 的txt文件中按行读取,将得到的3个字符串分别放入Flag对象中,
     * 然后将对于存储在返回List中
     * @return
     */
    public static List readFlag() {
        FileReader reader = null;
        List flagList = new ArrayList();
        try {
            reader = new FileReader(flagFileName);

            BufferedReader br = new BufferedReader(reader);
            String s1 = null;
            String[] s2 = null;
            Flag f = null;
            int i = 0;
            int j = 0;
            while ((s1 = br.readLine()) != null) {
                s2 = s1.split(" ");
                //               
                if (s2.length != 9) {
                    f = new Flag();
                    f.setCustomer_id(s2[0]);
                    f.setStartDate(s2[6]);
                    f.setEndDate(s2[7]);
                    i++;
                    j++;
                    flagList.add(f);
                    continue;
                }

                f = new Flag();
                f.setCustomer_id(s2[0]);
                f.setStartDate(s2[7]);
                f.setEndDate(s2[8]);
                i++;
                flagList.add(f);
            }

            br.close();
            reader.close();
        }
        catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        return flagList;
    }

 5、判断时间区间,由于时间格式不同,先要去掉startDate和endDate的“-”,用String的replaceAll()即可,然后就可以直接比较了:

    /**
     * 先将Flag对象中的startDate和endDate的格式由YYYY-MM-DD转换为YYYYMMDD
     * 然后看S2s对象中的formDate是否:
     *    formDate.compareTo(startDate) >= 0)
     *          && (formDate.compareTo(endDate) <= 0
     * 比对结果为返回值
     * @param s
     * @param f
     * @return
     */
    public static boolean inDateField(S2s s, Flag f) {

        String formDate = s.getForm_date();
        if (f == null) {
            return false;
        }

        String startDate = f.getStartDate();
        String endDate = f.getEndDate();

        if (formDate == null || "".equals(formDate) || startDate == null
                || "".equals(startDate) || endDate == null
                || "".equals(endDate)) {
            return false;
        }

        startDate = startDate.replaceAll("-", "");
        endDate = endDate.replaceAll("-", "");

        return (formDate.compareTo(startDate) >= 0)
                && (formDate.compareTo(endDate) <= 0);
    }

 6、最后我们来看S2s中的cust_id是否存在于表Flag中,我们先读取Flag中的所有记录,然后将所有cust_id存于一个HashSet中,同时以cust_id为Key,以Flag对象为Value,存储到一个HashMap中;然后使用HashSet的contains()看cust_id是否存在于此HashSet中:

custIdSet.contains(s.getCust_id()

 完整代码如下:

    public static void compareId() {
        List s2sList = getListS2sN(readS2s());
        List flagList = readFlag();
        Flag f = null;
        // 存放“新開戶ID清單”中的ID
        Set custIdSet = new HashSet();
        Map beansMap = new HashMap();
        int refSize2 = 0;
        if (flagList != null && flagList.size() > 0) {
            refSize2 = flagList.size();
        }
        for (int i = 0; i < refSize2; i++) {
            f = (Flag) flagList.get(i);
            custIdSet.add(f.getCustomer_id());
            beansMap.put(f.getCustomer_id(), f);
        }

        System.out.println("custIdSet.size(): " + custIdSet.size());
        System.out.println("beansMap.size(): " + beansMap.size());

        int refSize = 0;
        if (s2sList != null && s2sList.size() > 0) {
            refSize = s2sList.size();
        }
        System.out.println("s2sList.size(): " + refSize);
        S2s s = null;
        for (int i = 0; i < refSize; i++) {
            s = (S2s) s2sList.get(i);
            f = (Flag) beansMap.get(s.getCust_id());
            System.out.println(custIdSet.contains(s.getCust_id()) + " : "
                    + inDateField(s, f) + " : " + s.getCust_id() + ":");
            if (custIdSet.contains(s.getCust_id()) && inDateField(s, f)) {
                System.out.println("####" + i + ":"
                        + custIdSet.contains(s.getCust_id()) + " : "
                        + inDateField(s, f) + " : " + s.getCust_id() + ":");
            }
        }
    }
 

7、其他:

可以使用POI生成Excel档,代码如下:

    /**
     * 将S2s的List生成Excel档
     */
    public static void createExcelS2s() {
        String xlsFile = "D:/0Excel/S2s.xls";

        List s2sList = getListS2sN(readS2s());
        try {
            // 产生工作簿对象
            HSSFWorkbook workbook = new HSSFWorkbook();
            // 产生工作表对象,设置工作表的名称为Sheet1
            HSSFSheet sheet = workbook.createSheet("Sheet1");

            sheet.setColumnWidth((short) 0, (short) 4000);
            sheet.setColumnWidth((short) 1, (short) 2000);
            sheet.setColumnWidth((short) 2, (short) 3000);

            // 产生一行
            HSSFRow row = sheet.createRow((short) 0);
            // 产生第1个单元格 客戶ID或卡號 
            HSSFCell cell_01 = row.createCell((short) 0,
                    HSSFCell.CELL_TYPE_STRING);
            cell_01.setCellValue(new HSSFRichTextString("cust_id"));
            // 产生第2个单元格 BLK
            HSSFCell cell_02 = row.createCell((short) 1,
                    HSSFCell.CELL_TYPE_STRING);
            cell_02.setCellValue(new HSSFRichTextString("form_date"));
            // 产生第3个单元格 處理時間
            HSSFCell cell_03 = row.createCell((short) 2,
                    HSSFCell.CELL_TYPE_STRING);
            cell_03.setCellValue(new HSSFRichTextString("isTransmit"));

            HSSFCell newCell_01 = null;
            HSSFCell newCell_02 = null;
            HSSFCell newCell_03 = null;
            int s2sSize = 0;
            if (s2sList != null) {
                s2sSize = s2sList.size();
            }
            S2s s = null;
            for (int i = 1; i < s2sSize; i++) {
                s = (S2s) s2sList.get(i);
                // 产生一行
                HSSFRow rowNew = sheet.createRow((short) i);
                newCell_01 = rowNew.createCell((short) 0,
                        HSSFCell.CELL_TYPE_STRING);
                newCell_01.setCellValue(new HSSFRichTextString(s.getCust_id()));
                // 产生第2个单元格 BLK
                newCell_02 = rowNew.createCell((short) 1,
                        HSSFCell.CELL_TYPE_STRING);
                newCell_02
                        .setCellValue(new HSSFRichTextString(s.getForm_date()));
                // 产生第3个单元格 處理時間
                newCell_03 = rowNew.createCell((short) 2,
                        HSSFCell.CELL_TYPE_STRING);
                newCell_03.setCellValue(new HSSFRichTextString(s
                        .getIsTransmit()));
            }

            FileOutputStream fOut = new FileOutputStream(xlsFile);
            workbook.write(fOut);
            fOut.flush();
            fOut.close();
            System.out.println("文件生成...");

            // 以下语句读取生成的Excel文件内容
            FileInputStream fIn = new FileInputStream(xlsFile);
            HSSFWorkbook readWorkBook = new HSSFWorkbook(fIn);
            HSSFSheet readSheet = readWorkBook.getSheet("Sheet1");
            HSSFRow readRow = readSheet.getRow(0);
            HSSFCell readCell = readRow.getCell((short) 0);
            System.out.println("第一個單元是:" + readCell.getRichStringCellValue());
        }
        catch (Exception e) {
            e.printStackTrace();
            System.out.println(e);
        }
    }
 

整个测试类的完整代码如下:

package com.coderdream.s2s;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


public class Test {

    /** S2S_txt文件位置 */
    private static String s2sFileName = "S2S_1.txt";

    /** Flag_txt文件位置 */
    private static String flagFileName = "Flag_1.txt";

    /**
     * @param args
     */
    public static void main(String[] args) {
        //readS2s();

        //printListS2s(readS2s());
        //printListS2s(getListS2sN(readS2s()));
        //printListFlag(readFlag());
        //compareId();
        //testSet();
        //createExcel();
        //createExcelFlag();
        compareId();
        //testReplaceAll();
    }


    /**
     * 从S2s 的txt文件中按行读取,将得到的3个字符串分别放入S2s对象中,
     * 然后将对于存储在返回List中
     * 
     * @return
     */
    public static List readS2s() {
        FileReader reader = null;
        List s2sList = new ArrayList();
        try {
            reader = new FileReader(s2sFileName);

            BufferedReader br = new BufferedReader(reader);
            String s1 = null;
            String[] s2 = null;
            S2s s = null;
            while ((s1 = br.readLine()) != null) {
                // 根据导出的文本可知,字符串以空格分开
                s2 = s1.split(" ");
                s = new S2s();
                s.setCust_id(s2[0]);
                s.setForm_date(s2[7]);
                s.setIsTransmit(s2[9]);
                s2sList.add(s);
            }

            br.close();
            reader.close();
        }
        catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        return s2sList;
    }

    /**
     * 从Flag 的txt文件中按行读取,将得到的3个字符串分别放入Flag对象中,
     * 然后将对于存储在返回List中
     * @return
     */
    public static List readFlag() {
        FileReader reader = null;
        List flagList = new ArrayList();
        try {
            reader = new FileReader(flagFileName);

            BufferedReader br = new BufferedReader(reader);
            String s1 = null;
            String[] s2 = null;
            Flag f = null;
            int i = 0;
            int j = 0;
            while ((s1 = br.readLine()) != null) {
                s2 = s1.split(" ");
                //               
                if (s2.length != 9) {
                    f = new Flag();
                    f.setCustomer_id(s2[0]);
                    f.setStartDate(s2[6]);
                    f.setEndDate(s2[7]);
                    i++;
                    j++;
                    flagList.add(f);
                    continue;
                }

                f = new Flag();
                f.setCustomer_id(s2[0]);
                f.setStartDate(s2[7]);
                f.setEndDate(s2[8]);
                i++;
                flagList.add(f);
            }

            br.close();
            reader.close();
        }
        catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        return flagList;
    }

    /**
     * @param s2
     */
    public static void printArray(String[] s2) {
        for (int i = 0; i < s2.length; i++) {
            if (s2[i] != null && !"".equals(s2[i].trim())) {
                System.out.print(s2[i] + ":");

            }
        }
        System.out.println();
    }

    /**
     * @param s2sList
     */
    public static void printListS2s(List s2sList) {
        S2s s = null;
        int size = 0;
        if (s2sList != null) {
            size = s2sList.size();
        }
        int index = 0;
        for (int i = 0; i < size; i++) {
            s = (S2s) s2sList.get(i);
            index = i + 1;
            System.out.println(index + "\t:" + s.getCust_id() + ":"
                    + s.getForm_date() + ":" + s.getIsTransmit());
        }
    }

    /**
     * @param s2s
     */
    public static void printS2s(S2s s2s) {
        if (s2s != null) {
            System.out.println(s2s.getCust_id() + ":" + s2s.getForm_date()
                    + ":" + s2s.getIsTransmit());
        }
    }

    /**
     * @param s2sList
     * @return
     */
    public static List getListS2sN(List s2sList) {
        List list = new ArrayList();
        S2s s = null;
        int size = 0;
        if (s2sList != null) {
            size = s2sList.size();
        }

        for (int i = 0; i < size; i++) {
            s = (S2s) s2sList.get(i);
            if ("N".equals(s.getIsTransmit())) {
                list.add(s);
            }
        }

        return list;
    }

    /**
     * @param flagList
     */
    public static void printListFlag(List flagList) {
        Flag f = null;
        int size = 0;

        if (flagList != null) {
            size = flagList.size();
        }
        int index = 0;
        for (int i = 0; i < size; i++) {
            f = (Flag) flagList.get(i);
            index = i + 1;
            System.out.println(index + "\t:" + f.getCustomer_id() + ":"
                    + f.getStartDate() + ":" + f.getEndDate());
        }
    }

    /**
     * @param flag
     */
    public static void printFlag(Flag flag) {
        if (flag != null) {
            System.out.println(flag.getCustomer_id() + ":"
                    + flag.getStartDate() + ":" + flag.getEndDate());
        }
    }

    /**
     * 先将Flag对象中的startDate和endDate的格式由YYYY-MM-DD转换为YYYYMMDD
     * 然后看S2s对象中的formDate是否:
     *    formDate.compareTo(startDate) >= 0)
     *          && (formDate.compareTo(endDate) <= 0
     * 比对结果为返回值
     * @param s
     * @param f
     * @return
     */
    public static boolean inDateField(S2s s, Flag f) {

        String formDate = s.getForm_date();
        if (f == null) {
            return false;
        }

        String startDate = f.getStartDate();
        String endDate = f.getEndDate();

        if (formDate == null || "".equals(formDate) || startDate == null
                || "".equals(startDate) || endDate == null
                || "".equals(endDate)) {
            return false;
        }

        startDate = startDate.replaceAll("-", "");
        endDate = endDate.replaceAll("-", "");

        return (formDate.compareTo(startDate) >= 0)
                && (formDate.compareTo(endDate) <= 0);
    }


    /**
     * 
     */
    public static void compareId() {
        List s2sList = getListS2sN(readS2s());
        List flagList = readFlag();
        Flag f = null;
        // 存放“新開戶ID清單”中的ID
        Set custIdSet = new HashSet();
        Map beansMap = new HashMap();
        int refSize2 = 0;
        if (flagList != null && flagList.size() > 0) {
            refSize2 = flagList.size();
        }
        for (int i = 0; i < refSize2; i++) {
            f = (Flag) flagList.get(i);
            custIdSet.add(f.getCustomer_id());
            beansMap.put(f.getCustomer_id(), f);
        }

        System.out.println("custIdSet.size(): " + custIdSet.size());
        System.out.println("beansMap.size(): " + beansMap.size());

        int refSize = 0;
        if (s2sList != null && s2sList.size() > 0) {
            refSize = s2sList.size();
        }
        System.out.println("s2sList.size(): " + refSize);
        S2s s = null;
        for (int i = 0; i < refSize; i++) {
            s = (S2s) s2sList.get(i);
            f = (Flag) beansMap.get(s.getCust_id());
            System.out.println(custIdSet.contains(s.getCust_id()) + " : "
                    + inDateField(s, f) + " : " + s.getCust_id() + ":");
            if (custIdSet.contains(s.getCust_id()) && inDateField(s, f)) {
                System.out.println("####" + i + ":"
                        + custIdSet.contains(s.getCust_id()) + " : "
                        + inDateField(s, f) + " : " + s.getCust_id() + ":");
            }
        }
    }

    /**
     * 将S2s的List生成Excel档
     */
    public static void createExcelS2s() {
        String xlsFile = "D:/0Excel/S2s.xls";

        List s2sList = getListS2sN(readS2s());
        try {
            // 产生工作簿对象
            HSSFWorkbook workbook = new HSSFWorkbook();
            // 产生工作表对象,设置工作表的名称为Sheet1
            HSSFSheet sheet = workbook.createSheet("Sheet1");

            sheet.setColumnWidth((short) 0, (short) 4000);
            sheet.setColumnWidth((short) 1, (short) 2000);
            sheet.setColumnWidth((short) 2, (short) 3000);

            // 产生一行
            HSSFRow row = sheet.createRow((short) 0);
            // 产生第1个单元格 客戶ID或卡號 
            HSSFCell cell_01 = row.createCell((short) 0,
                    HSSFCell.CELL_TYPE_STRING);
            cell_01.setCellValue(new HSSFRichTextString("cust_id"));
            // 产生第2个单元格 BLK
            HSSFCell cell_02 = row.createCell((short) 1,
                    HSSFCell.CELL_TYPE_STRING);
            cell_02.setCellValue(new HSSFRichTextString("form_date"));
            // 产生第3个单元格 處理時間
            HSSFCell cell_03 = row.createCell((short) 2,
                    HSSFCell.CELL_TYPE_STRING);
            cell_03.setCellValue(new HSSFRichTextString("isTransmit"));

            HSSFCell newCell_01 = null;
            HSSFCell newCell_02 = null;
            HSSFCell newCell_03 = null;
            int s2sSize = 0;
            if (s2sList != null) {
                s2sSize = s2sList.size();
            }
            S2s s = null;
            for (int i = 1; i < s2sSize; i++) {
                s = (S2s) s2sList.get(i);
                // 产生一行
                HSSFRow rowNew = sheet.createRow((short) i);
                newCell_01 = rowNew.createCell((short) 0,
                        HSSFCell.CELL_TYPE_STRING);
                newCell_01.setCellValue(new HSSFRichTextString(s.getCust_id()));
                // 产生第2个单元格 BLK
                newCell_02 = rowNew.createCell((short) 1,
                        HSSFCell.CELL_TYPE_STRING);
                newCell_02
                        .setCellValue(new HSSFRichTextString(s.getForm_date()));
                // 产生第3个单元格 處理時間
                newCell_03 = rowNew.createCell((short) 2,
                        HSSFCell.CELL_TYPE_STRING);
                newCell_03.setCellValue(new HSSFRichTextString(s
                        .getIsTransmit()));
            }

            FileOutputStream fOut = new FileOutputStream(xlsFile);
            workbook.write(fOut);
            fOut.flush();
            fOut.close();
            System.out.println("文件生成...");

            // 以下语句读取生成的Excel文件内容
            FileInputStream fIn = new FileInputStream(xlsFile);
            HSSFWorkbook readWorkBook = new HSSFWorkbook(fIn);
            HSSFSheet readSheet = readWorkBook.getSheet("Sheet1");
            HSSFRow readRow = readSheet.getRow(0);
            HSSFCell readCell = readRow.getCell((short) 0);
            System.out.println("第一個單元是:" + readCell.getRichStringCellValue());
        }
        catch (Exception e) {
            e.printStackTrace();
            System.out.println(e);
        }
    }

    public static void createExcelFlag() {
        String xlsFile = "D:/0Excel/Flag.xls";

        List flagList = readFlag();
        try {
            // 产生工作簿对象
            HSSFWorkbook workbook = new HSSFWorkbook();
            // 产生工作表对象,设置工作表的名称为Sheet1
            HSSFSheet sheet = workbook.createSheet("Sheet1");

            sheet.setColumnWidth((short) 0, (short) 4000);
            sheet.setColumnWidth((short) 1, (short) 6000);
            sheet.setColumnWidth((short) 2, (short) 6000);


            // 产生一行
            HSSFRow row = sheet.createRow((short) 0);
            // 产生第1个单元格 cust_id
            HSSFCell cell_01 = row.createCell((short) 0,
                    HSSFCell.CELL_TYPE_STRING);
            cell_01.setCellValue(new HSSFRichTextString("cust_id"));
            // 产生第2个单元格 startDate
            HSSFCell cell_02 = row.createCell((short) 1,
                    HSSFCell.CELL_TYPE_STRING);
            cell_02.setCellValue(new HSSFRichTextString("startDate"));
            // 产生第3个单元格 endDate
            HSSFCell cell_03 = row.createCell((short) 2,
                    HSSFCell.CELL_TYPE_STRING);
            cell_03.setCellValue(new HSSFRichTextString("endDate"));

            HSSFCell newCell_01 = null;
            HSSFCell newCell_02 = null;
            HSSFCell newCell_03 = null;
            int flagSize = 0;
            if (flagList != null) {
                flagSize = flagList.size();
            }
            Flag f = null;
            for (int i = 1; i < flagSize; i++) {
                f = (Flag) flagList.get(i);
                // 产生一行
                HSSFRow rowNew = sheet.createRow((short) i);
                // 产生第1个单元格 cust_id
                newCell_01 = rowNew.createCell((short) 0,
                        HSSFCell.CELL_TYPE_STRING);
                newCell_01.setCellValue(new HSSFRichTextString(f
                        .getCustomer_id()));
                // 产生第2个单元格 startDate
                newCell_02 = rowNew.createCell((short) 1,
                        HSSFCell.CELL_TYPE_STRING);
                newCell_02
                        .setCellValue(new HSSFRichTextString(f.getStartDate()));
                // 产生第3个单元格 endDate
                newCell_03 = rowNew.createCell((short) 2,
                        HSSFCell.CELL_TYPE_STRING);
                newCell_03.setCellValue(new HSSFRichTextString(f.getEndDate()));
            }

            FileOutputStream fOut = new FileOutputStream(xlsFile);
            workbook.write(fOut);
            fOut.flush();
            fOut.close();
            System.out.println("文件生成...");

            // 以下语句读取生成的Excel文件内容
            FileInputStream fIn = new FileInputStream(xlsFile);
            HSSFWorkbook readWorkBook = new HSSFWorkbook(fIn);
            HSSFSheet readSheet = readWorkBook.getSheet("Sheet1");
            HSSFRow readRow = readSheet.getRow(0);
            HSSFCell readCell = readRow.getCell((short) 0);
            System.out.println("第一個單元是:" + readCell.getRichStringCellValue());
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }

    public static void testReplaceAll() {
        String startDate = "2008.09.01";
        String endDate = "2008.09.30";
        String sDate = startDate.replaceAll("[.]", "");
        String eDate = endDate.replaceAll("[.]", "");
        System.out.println(startDate + ":" + endDate + ":" + sDate + ":"
                + eDate);
    }

}
 

运行结果:

custIdSet.size(): 20
beansMap.size(): 20
s2sList.size(): 10
true : false : S223821747:
true : false : L123462919:
false : false : F223700449:
false : false : U120222840:
true : false : F224800911:
true : false : S223821747:
true : true : Z100098584:
####6:true : true : Z100098584:
false : false : L100867210:
true : true : C221114157:
####8:true : true : C221114157:
true : true : B122081672:
####9:true : true : B122081672:
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值