【问题标题】:Java equivalent of ruby's "Some sentence that I need a dynamic #{value}."Java 相当于 ruby​​ 的“我需要动态 #{value} 的一些句子”。
【发布时间】:2010-11-08 21:22:51
【问题描述】:

我是否必须在 java 中制定我的所有字符串,例如“一些静态词”+ 变量 +“一些更多静态词”。或者有没有办法像 ruby​​ 允许你评估字符串中的一个部分一样:“一些带有 #{dynamic_value} 的静态单词插入到语句中。”

我没有发现太多谷歌搜索的方式,这确实会加快格式化字符串并使它们更易于查看。

【问题讨论】:

    标签: java ruby string formatting string-formatting


    【解决方案1】:

    我相信您正在寻找的是String.format() 方法。

    String.format("Your static string with %s some variables %d", "string", 3445);
    

    一般的想法是,您首先使用特殊的占位符格式放置静态字符串。 ("%s") 然后你传入变量来填充这些占位符。

    【讨论】:

    • @dah,是的。这只是您在初始格式字符串之后传递的顺序。因此,在我的示例中,你们切换了最后 2 个参数的顺序,代码会抛出异常,因为类型与声明的类型不匹配。 (他们会倒退)
    • 是的,是顺序,也是数据的类型。因此,如果您指定 %d 而不是尝试放入字符串,则会引发异常。
    • @Casey,是的。匹配正确的类型也很重要。
    • @dah, @jjnguy - 在转换之前,您可以在格式说明符中包含参数索引。例如,“与 %1$s ... %2$d”。本地化消息可能需要这个。
    • @Andy,感谢您提供的那一点信息。我不知道。
    【解决方案2】:

    我不知道 Ruby,但我认为这就是你想要的:

    String text = MessageFormat.format("This is {0} a dynamic value", dynamicValue);
    

    【讨论】:

      猜你喜欢
      • 2012-01-16
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 2013-01-26
      相关资源
      最近更新 更多