java - 包含 % 的格式字符串无效

标签 java android string string-formatting getstring

我已经阅读了有关此链接警告的其他帖子,但他们没有解决我的问题,而且我仍然不明白我做错了什么。

在默认文件 strings.xml 中,我有:

 <string name="rating_dialog">You\'re about to rate this app with %s stars.</string>

后来,我在重写 onClick 方法中调用它:

 v.getContext().getString(R.string.rating_dialog, String.valueOf(rating))

它看起来像:

您将用 {String.valueOf( rating)} 颗星来评价此应用。

链接警告:

格式字符串不是有效的格式字符串,因此不应将其传递给 string.format

注意:

v 是一个 View rating 是一个 int 值。

我检查了其他语言的其他 strings.xml 文件,所有翻译似乎都没有问题。

已解决:对于印地文 string.xml,只有 %,而不是 %s。

最佳答案

您需要为 XML 中定义的每个占位符分配一个位置。

您的字符串将变为:

<string name="rating_dialog">You\'re about to rate this app with %1$s stars.</string>

关于java - 包含 % 的格式字符串无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41998908/

相关文章:

Java - 将 xml 文件从 ISO-8859-2 转换为 UTF-8

java - 安卓谷歌驱动器 SDK : Saving to App Folder

c# - 用省略号截断字符串,确保不破坏任何 HTML 实体

Java 为 Integer 参数调用 String.valueOf(char[] data) 而不是 String.valueOf(int i) 并抛出 ClassCastException

javascript - React Native - Android - 全局禁用后退按钮的问题

c++ - 在 C++ 中读取包含大量列和行的 csv 文件的最快方法

java - Spring-Hibernate 事务只读传播

java - 如果字符串字段以加号 (+) 开头,更新 Sqlite 表?

java - WeakReference 如何影响这个程序的工作

android - 如何知道Realm对象的创建线程