Kotlin 相当于 swift 中的 %@
Kotlin equivalent of %@ in swift
我是科特林的新手。
在 swift 我可以做到 :
let endpoint = "categories/" + "%@/issues/"
let number = "4"
let finalstring = String(format: endpoint, number)
字符串的最终输出将是:categories/4/issues/作为字符串。
我看过 kotlin 中的字符串格式,但它只能在之后工作,这意味着我无法为我的字符串定义模板并在以后填充它。
var value1 = "categories/"
var value2 = 4
var value3 = "/issues/"
println(java.lang.String.format("%s%d%s", value1, value2, value3))
这给了我相同的结果,但这意味着我必须手动写入字符串的结尾。
我想做的是在 Road 文件中为我的字符串创建一个模板。
然后在 运行 时间完成我的字符串。问题是我想要完成的字符串部分位于字符串的中间。
当然我可以使用 substring 和 remplace 但我正在寻找一种干净的方法来做到这一点 swift.
感谢您的帮助。
一个可能的选择是定义一个进行格式化的本地函数:
fun requestString(number: Int) = "categories/$number/issues/"
val finalString = requestString(4)
您可以使用所有常量部分和相关占位符(例如 %d
表示数字)预先创建格式字符串(更多信息请参见 javadoc)。
后面用正则Java String.format()
后面加上参数:
// define this constant up front
val format = "categories/%d/issues/"
// and then later:
val categoryId = 4
println(String.format(format, categoryId))
你的例子中已经有了答案,你只需要把它放在一起。
String.format 将 %s
作为字符串的占位符或将 %d
作为数字的占位符(以及 many more 占位符选项)。
因此您的模板字符串将是:"categories/%d/issues/"
。要对其进行格式化,请使用:
val format = "categories/%d/issues/"
val number = 4
val string = String.format(format, number)
关于插值和格式化,它们可以在不同的情况下使用。
如果源代码中有可用的模板字符串,则可以使用插值:
val string = "categories/${category.id}/issues/"
但是当您无法控制字符串时,因为它来自外部源(例如文件),那么您将不得不使用格式化。
我是科特林的新手。 在 swift 我可以做到 :
let endpoint = "categories/" + "%@/issues/"
let number = "4"
let finalstring = String(format: endpoint, number)
字符串的最终输出将是:categories/4/issues/作为字符串。
我看过 kotlin 中的字符串格式,但它只能在之后工作,这意味着我无法为我的字符串定义模板并在以后填充它。
var value1 = "categories/"
var value2 = 4
var value3 = "/issues/"
println(java.lang.String.format("%s%d%s", value1, value2, value3))
这给了我相同的结果,但这意味着我必须手动写入字符串的结尾。
我想做的是在 Road 文件中为我的字符串创建一个模板。 然后在 运行 时间完成我的字符串。问题是我想要完成的字符串部分位于字符串的中间。 当然我可以使用 substring 和 remplace 但我正在寻找一种干净的方法来做到这一点 swift.
感谢您的帮助。
一个可能的选择是定义一个进行格式化的本地函数:
fun requestString(number: Int) = "categories/$number/issues/"
val finalString = requestString(4)
您可以使用所有常量部分和相关占位符(例如 %d
表示数字)预先创建格式字符串(更多信息请参见 javadoc)。
后面用正则Java String.format()
后面加上参数:
// define this constant up front
val format = "categories/%d/issues/"
// and then later:
val categoryId = 4
println(String.format(format, categoryId))
你的例子中已经有了答案,你只需要把它放在一起。
String.format 将 %s
作为字符串的占位符或将 %d
作为数字的占位符(以及 many more 占位符选项)。
因此您的模板字符串将是:"categories/%d/issues/"
。要对其进行格式化,请使用:
val format = "categories/%d/issues/"
val number = 4
val string = String.format(format, number)
关于插值和格式化,它们可以在不同的情况下使用。
如果源代码中有可用的模板字符串,则可以使用插值:
val string = "categories/${category.id}/issues/"
但是当您无法控制字符串时,因为它来自外部源(例如文件),那么您将不得不使用格式化。