简体   繁体   中英

String.Format (.NET) equivalent in Java?

The String.Format in .NET (maybe just VB.NET) convert {0}, {1}, ... into determined String, for example:

Dim St As String = "Test: {0}, {1}"
Console.WriteLine(String.Format(St, "Text1", "Text2"))

I've tried to search in both Google and StackOverflows, but they all return number-string format.

The other suggestions are certainly good, but are more in the style of printf and its lineage which are more recent additions to Java. The code you posted looks to be inspired by MessageFormat .

String format = "Test: {0}, {1}"
System.out.println(MessageFormat.format(format, "Text1", "Text2"))

I'm not really certain about what the 'Return: statement is doing though.

Use MessageFormat.format , you can also provide formatting arguments in the replacement tokens.

message = MessageFormat.format("This is a formatted percentage " +
                "{0,number,percent} and a string {1}", varNumber, varText);
        System.out.println(message);

message = MessageFormat.format("This is a formatted {0, number,#.##} " +
                "and {1, number,#.##} numbers", 25.7575, 75.2525);
        System.out.println(message);

Alternatively, String.format can be used but this doesn't guarantee position eg String.format("What do you get if you multiply %d by %s?", varNumber, varText); .

String.format("Test: %s, %s",string1,string2)
System.out.printf()
System.out.format()

For other methods use:

StringBuilder sb = new StringBuilder();
Formatter f = new Formatter(sb, Locale.US);
f.format("my %s", "string");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM