我在java中有一个正则表达式的任务,我有一个问题。
sentences = text.split();
如何从regexp.properties文件传递给()正则表达式
regexp.DECLARATIVE_SENTENCE = "\\.";
例如。
我可以使用像
这样的常量public static final String DECLARATIVE_SENTENCE = "\\.";
而不是
sentences = text.split(DECLARATIVE_SENTENCE);
但我需要从属性文件中读取参数。我怎样才能做到这一点?以资源包为例?
答案 0 :(得分:0)
如果我理解正确,您希望从属性文件中加载正则表达式值。
为此,您可以在Java中使用名为Properties的类。
public Properties GetPropertiesFile(String location) throws IOException {
Properties prop = new Properties();
FileInputStream inputStream = null;
try
{
inputStream = new FileInputStream(location);
prop.load(inputStream);
} finally {
if (inputStream != null) {
inputStream.close();
}
}
return prop;
}
您可能需要使用FileInputStream
并根据您的情况使用getClass().getClassLoader().getResourceAsStream
,但这可能会让您接近。
以下是您使用上述功能的方法:
Properties prop = GetPropertiesFile("regexp.properties");
String regex = prop.getProperty("DECLARATIVE_SENTENCE");
String[] ret = str.split(regex);
您可能需要根据您的配置更改属性文件位置,如果属性文件是资源,甚至可能更改FileInputStream
。
答案 1 :(得分:-2)
import java.util.ResourceBundle;
ResourceBundle rb = ResourceBundle.getBundle(resourceBundleName);
rb.getString(DECLARATIVE_SENTENCE)