Python 2.6引入的str.format()方法与现有%运算符的语法略有不同。哪个更好,什么情况下适合? 以下使用每种方法并具有相同的结果,那么有什么区别? #!/usr/bin/python sub1 = "python string!" sub2 = "an arg" a = "i am a %s" % sub1 b = "i am a {0}".format(sub1) c = "with %(kwarg)s!" % {'kwarg':sub2} d = "with {kwarg}!".format(kwarg=sub2) print a # "i am a python string!" print b # "i am a …
我们必须一直构建String以便进行日志输出等等。在JDK版本中,我们了解了何时使用StringBuffer(很多追加,线程安全)和StringBuilder(很多追加,非线程安全)。 有什么使用建议String.format()?是高效的,还是在性能很重要的情况下,我们被迫坚持采用单线连接? 例如丑陋的旧风格, String s = "What do you get if you multiply " + varSix + " by " + varNine + "?"; 与整洁的新样式(String.format,可能会更慢)相比, String s = String.format("What do you get if you multiply %d by %d?", varSix, varNine); 注意:我的特定用例是整个代码中数百个“单行”日志字符串。它们不涉及循环,所以StringBuilder也太笨重。我String.format()特别感兴趣。
Kotlin具有一项出色的功能,称为字符串模板。我很喜欢。 val i = 10 val s = "i = $i" // evaluates to "i = 10" 但是模板中是否可以有任何格式?例如,我想在kotlin中格式化字符串模板中的Double格式,至少要在小数点分隔符后设置一些数字: val pi = 3.14159265358979323 val s = "pi = $pi??" // How to make it "pi = 3.14"?
在Python中,格式化字符串时,我可以按名称而不是按位置填充占位符,如下所示: print "There's an incorrect value '%(value)s' in column # %(column)d" % \ { 'value': x, 'column': y } 我想知道这在Java中是否可行(希望没有外部库)?