gpt4 book ai didi

android - java.util.MissingFormatArgumentException : Format specifier '%2$s

转载 作者:行者123 更新时间:2023-12-05 00:18:22 50 4
gpt4 key购买 nike

我有字符串

<string name="data">%1$s / %2$s</string>
我通过 可变参数 在这样的功能
fun getText(varargs text: String) : String {
return getString(R.string.data,text)
}
我在 Activity 中调用了函数
getText("1" ,"2")
它给出了错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.vivek, PID: 5126
java.util.MissingFormatArgumentException: Format specifier '%2$s'
at java.util.Formatter.format(Formatter.java:2529)
at java.util.Formatter.format(Formatter.java:2459)
at java.lang.String.format(String.java:2911)

最佳答案

接受的答案实际上并不能解决问题,所以我不确定为什么它被接受。
是否使用 String.format 无关紧要, Context.getStringFragment.getStringResources.getString .问题在于 varargs论据被解释。看起来像 Kotlin 的东西。简单的说就是整个varargs作为 数组 就好像它是一个单一的对象,并将其传递为 一个 varargs您在函数中调用的函数的参数。
所以为了让 Kotlin 不这样做,你只需要传播 varargs带有星号的参数(所谓的扩展运算符),如下所示:

fun getText(varargs text: String) : String {
return getString(R.string.data, *text)
}
这是一个经过测试的解决方案。

关于android - java.util.MissingFormatArgumentException : Format specifier '%2$s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68267576/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com