从字符串中提取值的最佳方法,该字符串可以采用多种形式,并且是从Java中的.properties文件加载的。

问题描述 投票:1回答:1

我有一个ws.properties文件,其中有一个名为success.code的属性,该属性使我可以选择除默认的200之外的HTTP状态成功代码(2xx),我想要服务器也将其视为“成功”。

想法是这样的:

  1. 如果输入这样的值:

success.code = 201,202,203(值用逗号分隔)

代码的负责提取此值的部分应立即了解这是三个单独的代码,提取每个代码并将它们存储在列表或集合中,或....

这实际上很容易:

private Set<String[]> getSuccessCodes(HashMap<String, String> codes){
    Set<String[]> successCodes = new HashSet<>();
    String value;
    for (Map.Entry<String, String> entry : codes.entrySet()) {
        value = entry.getValue();
        if(!StringUtils.isEmpty(value))
            successCodes.add(value.split("\\s*,\\s*"));
    }
    return successCodes;
}
  1. 这里有点复杂:

我也想添加这些选项:

success.code = [202,220](两个在钩子之间写入并用逗号分隔的值)

  • [[202,220]:当这样写值时,我希望上述方法能够理解我希望提取,存储和返回202和220之间的所有值,就像我对第一种情况所做的那样。

success.code = 2 **

  • 这意味着所有以2开头(因此从201到299)的代码都应存储在集合或列表中,并在该方法中返回给我]]
  • success.code = [200,205],22 *

  • 这意味着我希望代码返回200到205之间的所有代码(所以200、201、202,..,2005)以及从220到220的代码。
  • 因此,根据我为成功代码输入的值,程序应该能够理解该做什么以及从中返回什么。

这可以实现吗?

提前感谢

我有一个ws.properties文件,其中有一个名为success.code的属性,该属性使我可以选择除默认的200之外,还可以选择哪个HTTP状态成功代码(2xx),我希望服务器...

java properties-file
1个回答
0
投票

而不是要求程序接受您定义的一些详尽的语法,为什么不让框架自然地执行它的工作?


0
投票

首先,答案肯定是是可以实现的

© www.soinside.com 2019 - 2024. All rights reserved.