【问题标题】:Java: using properties with N values for 1 keyJava:对 1 个键使用具有 N 个值的属性
【发布时间】:2014-02-28 21:17:19
【问题描述】:

早上好,我正在制作一个备份程序。 在配置文件中,我需要指定 N 个源目录和它们的目标目录,如下所示:

source="source dir", "destination drive1", "destination drive2"
source="source dir2", "destination drive", "destination drive2"

但在属性中,一个键只能有一个值,所以我对 source1、source2 等使用不同的键。

有解决办法吗?

ps 分割上述字符串的正确方法是什么 “源目录”、“目标驱动器 1”、“目标驱动器 2” 如果我用 " 分开很容易,但如果我有类似

"i feel ""good"" because i'm a java programmer", "i feel "very bad" because i'm a java programmer"

我不能使用 string.split("""") 因为 "good" 中的 " 会拆分字符串。

非常感谢

【问题讨论】:

  • 你可以有 HashMap>..

标签: java properties


【解决方案1】:

"符号分割:

String[] split = s.split("\"");

如果您想让" 登录String,您需要使用\" 而不是"

【讨论】:

    【解决方案2】:

    如果需要,您可以将其保存为 JSON 文件。在JSON.Simple Example – Read And Write JSON 中保存和阅读的完整示例。

    另一种方式,您需要在保存时转义双引号。见https://stackoverflow.com/a/10452463/870248

    【讨论】:

      【解决方案3】:

      我看到了三种解决方案。

      许多键,一个值

      source1a="源" source1b="目的地一" source1c="目的地二" source2a="源" source2b="目的地一" source2c="目的地三"

      一键一值

      source1=源,目的地一,目的地二 source2=源,目的地一,目的地二

      为此,请使用 String.split(",") 解析值。

      XML

      因为房产是如此的 20 世纪。

      <configills>
        <blam hoot="source">
          <destination value="destination one"/>
          <destination value="destination two"/>
        </blam>
        <blam hoot="source2">
          <destination value="destination one"/>
          <destination value="destination two"/>
        </blam>
      </configills>
      

      【讨论】:

      • 如果我在做一个简单的xml设计; SAX 看起来不错。对于更复杂的事情,请查看 JAXB。此外,Spring 具有出色的 JAXB 支持(以及 Castor 和 JiBX 以及其他)。
      猜你喜欢
      • 2021-12-28
      • 2021-11-15
      • 1970-01-01
      • 2018-09-23
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多