android - 多值字符串格式Android
问题描述
我想显示这样的示例文本:“0/2 文档”我正在尝试这样做:
<plurals name="documents_get">
<item quantity="one">%1d/%2d doucment</item>
<item quantity="other">%1d/%2d documents</item>
</plurals>
resources.getQuantityString(
R.plurals.documents_get,
docCount,
documents.filter {
it.retrieved_at != null
}.count(),
docCount)
我的问题是结果是: 0/ 2 documents
而不是“0/2 文件”。'/' 之后的空格是问题所在。
您知道解决方案吗?
提前致谢
解决方案
问题是您使用的格式 ( %2d
)。所以把你的复数改成这样:
<plurals name="documents_get">
<item quantity="one">%d/%d doucment</item>
<item quantity="other">%d/%d documents</item>
</plurals>
使用示例String.format
String s1 = String.format("%d/%d document", 0, 1); // s1: "0/1 document"
String s2 = String.format("%d/%2d document", 0, 1); // s2: "0/ 1 document"
编辑
正如@Kingfisher Phuoc 指出的那样,它应该%1$d/%2$d
代替%d
. $ 符号允许您指定字符串的索引(应该打印字符串的位置,称为“显式参数索引”或“位置参数”。您可以在此处阅读更多内容)。
例如:
String s1 = String.format("%1$d/%2$d", 1, 2); // s1: "1/2"
String s2 = String.format("%2$d/%1$d", 1, 2); // s2: "2/1"
推荐阅读
- php - 如何像新闻自动收报机一样自动向右滚动动画?
- amazon-web-services - 与 BitBucket 集成时 AWS CodePipeline 的 AWS IAM 访问异常
- cocoapods - 安装 pod 文件 Cocoapods 版本 1.9.1 时出错
- c++ - 使用基于范围的 for 循环自定义容器遍历
- function - 通过 HTA 应用激活自定义虚拟空间
- javascript - 如何设计一个应该应用 JS 的区域?
- spring-boot - 微服务故障场景
- java - 如何在 Jenkins 中为基于 linux 的系统设置 JAVA_HOME?
- python - 在 Python 3.8.2 中安装 Kivy 发生错误
- python - 命令“python setup.py egg_info”在 /tmp/pip-install-mqa_uywo/grpcio/ 中失败,错误代码为 1