JavaでStringのReplaceAllでは小さな結び目を使う

1586 ワード

1、StringはReplaceAll()を使用した後、結果を自分に与える.
    public static boolean inDateField(S2s bean1, Flag bean2) {

        String formDate = bean1.getForm_date();
        if (bean2 == null) {
            return false;
        }

        String startDate = bean2.getStartDate();
        String endDate = bean2.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);
    } 

 
以前に書いたもの:
        startDate.replaceAll("-", "");
        endDate.replaceAll("-", "");

 
結果を元のStringに与えなかったので、元のStringは「-」を落とさず、結果より自然に間違っていた.
 
2、正規表現に注意:
「.」、「/」などの正規表現に属する特殊な文字は、特に注意してください.
 
    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);
    }