Questions tagged «string-formatting»

通常是指将任意数量的各种数据类型显示为字符串的多种方法。


16
字符串格式:%与.format
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 …




5
格式化Go字符串而不打印?
有没有一种简单的方法可以在Go中格式化字符串而不打印字符串? 我可以: bar := "bar" fmt.Printf("foo: %s", bar) 但是我希望返回格式化的字符串而不是打印出来的字符串,以便我可以进一步处理它。 我也可以做类似的事情: s := "foo: " + bar 但这在格式字符串很复杂时很难阅读,而在一个或多个部分不是字符串而必须首先转换的时候(例如, i := 25 s := "foo: " + strconv.Itoa(i) 有没有更简单的方法可以做到这一点?

16
使用字符串格式最多显示两位小数或简单整数
我有一个要显示的价格字段,有时可以是100或100.99或100.9,我要显示的是仅在为该价格输入小数时才在2个小数位显示价格,例如,如果它是100,则仅显示100而不是100.00,如果价格是100.2,则应显示100.20,对于100.22应该相同。我用谷歌搜索并遇到了一些例子,但它们与我想要的完全不匹配: // just two decimal places String.Format("{0:0.00}", 123.4567); // "123.46" String.Format("{0:0.00}", 123.4); // "123.40" String.Format("{0:0.00}", 123.0); // "123.00"



13
如果性能很重要,我应该使用Java的String.format()吗?
我们必须一直构建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()特别感兴趣。

6
以Kotlin字符串模板格式
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"?



19
以字符串格式命名的占位符
在Python中,格式化字符串时,我可以按名称而不是按位置填充占位符,如下所示: print "There's an incorrect value '%(value)s' in column # %(column)d" % \ { 'value': x, 'column': y } 我想知道这在Java中是否可行(希望没有外部库)?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.