2013-07-28 116 views
2

我有一個類,其中我比較兩個數組,我需要對結果應用模式,使得它忽略了日期。我做了對正則表達式和屬性文件的一些研究,並與正則表達式的屬性文件

public class writeconfig { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    Properties property = new Properties(); 
    String datepattern = "(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)"; 
    Pattern pattern = Pattern.compile(datepattern); 
    property.setProperty("pattern_use", pattern); 

} 

}

現在來了,事實證明,該套物業的功能,只允許引用輸入,我不能一個模式儲存在裏面。有沒有辦法做到這一點?非常感謝幫助。

+1

爲什麼你需要在屬性文件中存儲模式? 你可以保存日期模式 – Udy

+0

@udy我需要。這樣我可以在將來添加更多需要在比較方法中修改的功能。 – newtoprogramming

回答

3

Properties延伸Hashtable,所以你可以使用put(key, value)get(key)方法來存儲Properties類中的對象。

property.put("pattern_use", pattern); 
pattern = (Pattern)property.get("pattern_use"); 

請注意,您將無法在Properties對象存儲到文件或任何東西,如果你這樣做,因爲它會嘗試將模式轉換爲字符串。如果你需要這個,我只是將正則表達式存儲在一個屬性文件中,並從中創建模式。這可以這樣做:

property.setProperty("pattern_use", pattern.toString()); 
pattern = Pattern.compile(property.getProperty("pattern_use")); 
+0

謝謝。我通過使用property.put(「pattern_use」,「」+ pattern)將模式存儲在屬性文件中。我需要檢索模式,在我加載屬性文件的類中。我已經用輸入流加載了文件。但是,如何檢索模式並將其應用於數組? – newtoprogramming

+0

通過使用'「」+ pattern',你所做的就是將它轉換爲一個字符串。如果這就是你真正想要的,那麼使用這個'property.setProperty(「pattern_use」,pattern.toString())'來存儲模式並且加載該模式來做這個'Pattern.compile(properties.getProperty(「pattern_use」)) ' – Syon

+0

再次感謝。我是否也可以使用String prop = property.getProperty(「pattern_use」); ? – newtoprogramming