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);

}

}

现在,事实证明 set 属性函数只允许带引号的输入,我不能在其中存储模式。有什么办法吗?感谢您的帮助。

4

1 回答 1

4

Propertiesextends 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"));
于 2013-07-29T18:07:39.597 回答