Java相当于.NET的String.Format

Bud*_*Joe 60 .net c# java string

是否有相当于String.FormatJava的.NET ?

Osc*_*kin 117

对此的10美分答案是:

C#的


String.Format("{0} -- {1} -- {2}", ob1, ob2, ob3)
Run Code Online (Sandbox Code Playgroud)

相当于Java的


String.format("%1$s -- %2$s -- %3$s", ob1, ob2, ob3)
Run Code Online (Sandbox Code Playgroud)

注意基于1的索引,"s"表示使用.toString()转换为字符串.还有许多其他转换和格式选项:

http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html#syntax

  • 我知道有一个原因我更喜欢C#,更好!也许是因为C#是我学过的第一种语言,但Java版看起来很人为. (23认同)

dtb*_*dtb 31

看看String.formatPrintStream.format方法.

两者都基于java.util.Formatter类.

String.format示例:

Calendar c = new GregorianCalendar(1995, MAY, 23);
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
// -> s == "Duke's Birthday: May 23, 1995"
Run Code Online (Sandbox Code Playgroud)

System.out.format示例:

// Writes a formatted string to System.out.
System.out.format("Local time: %tT", Calendar.getInstance());
// -> "Local time: 13:34:18"
Run Code Online (Sandbox Code Playgroud)


MrS*_*ake 30

MessageFormat.format()使用.net表示法.

  • 请注意,MessageFormat.format并不完全相同,例如:MessageFormat.format("<font color ='{0}'> {1} </ font>","#112233","Something" )将返回"<font color = {0}> Something </ font>".正如你猜测的那样,问题是'char - 你需要提供:"<font color = \"{0} \"> {1} </ font>".阅读[MessageFormat类指南](http://developer.android.com/reference/java/text/MessageFormat.html)了解更多信息. (4认同)

Nic*_*ume 18

您也可以简单地使用%sfor string,因为索引是一个optionnal参数.

String name = "Jon";
int age = 26;
String.format("%s is %s years old.", name, age);
Run Code Online (Sandbox Code Playgroud)

它不那么吵了.

%s从java文档中注意:

如果参数arg为null,则结果为"null".如果arg实现了Formattable,则调用arg.formatTo.否则,通过调用arg.toString()获得结果.


Mar*_*ers 7

String.formatJava中有一个,虽然语法与.NET有点不同.