原始问题,但我如何格式化字符串,如下所示:

"第{1}步,共{2}"

通过使用Java替换变量?在C#中,这很容易.

推荐答案

除了绳子.格式,也看看java.text.MessageFormat.格式没有那么简洁,更接近于您提供的C#示例,您也可以使用它进行解析.

例如:

int someNumber = 42;
String someString = "foobar";
Object[] args = {new Long(someNumber), someString};
MessageFormat fmt = new MessageFormat("String is \"{1}\", number is {0}.");
System.out.println(fmt.format(args));

一个更好的例子利用了Java 1.5中的varargs和autoboxing改进,并将上述内容变成了一行:

MessageFormat.format("String is \"{1}\", number is {0}.", 42, "foobar");

MessageFormat对于使用choice修饰符进行i18nized复数有点好.要指定在变量为1时正确使用单数形式,否则为复数形式的消息,可以执行以下操作:

String formatString = "there were {0} {0,choice,0#objects|1#object|1<objects}";
MessageFormat fmt = new MessageFormat(formatString);
fmt.format(new Object[] { new Long(numberOfObjects) });

Java相关问答推荐

如何计算内循环的时间复杂度?

如何在Android上获取来电信息

XPages-在第二次点击按钮之前延迟

扩展到弹出窗口宽度的JavaFX文本字段

Java流传输一个列表并创建单个对象

如何使用SpringBoot中的可分页对整数作为字符串存储在数据库中时进行排序

S,要对Java复制构造函数深度克隆所有属性进行单元测试,最可靠的方法是什么?

%This内置函数示例

如何在代码中将行呈现在矩形前面?

如何将Pane的图像快照保存为BMP?

使用Class.this.field=Value初始化构造函数中的最后一个字段会产生错误,而使用this.field=Value则不会

在Oracle中调用输出参数在索引处缺少IN或OUT参数的函数

基于Java中mm/dd/yy格式的最近日期对数组列表进行排序

Kotlin-仅替换字符串中最后一个给定的字符串

如何在右击时 Select 新行?

Cucumber java-maven-示例表-未定义一步

验证没有';t work on Hibernate Entity';s字段

如何以事务方式向ibmmq发送消息

try 添加;按流派搜索;在Web应用程序上,但没有;I don’我不知道;It’这个代码错了

为什么child-pom会创建一个新版本