2013-07-08 4 views

ответ

45

MessageFormat класс выглядит как то, что вы после

System.out.println(MessageFormat.format("{0} + {1} = {2}", x, y, x + y)); 
+1

С предупреждением о том, что 'MessageFormat.format' не обрабатывает пустой держатель места' {} '. –

+0

... и предостережение, что если вы используете '' {', он не будет распознавать скобки –

10

Java имеет метод String.format, который работает аналогично этому. Here's an example of how to use it. Это documentation reference, что объясняет, что все эти % могут быть.

И вот встраиваемый пример:

package com.sandbox; 

public class Sandbox { 

    public static void main(String[] args) { 
     System.out.println(String.format("It is %d oclock", 5)); 
    }   
} 

Печатает "Это 5 Oclock".

+1

Это '%' на основе строки форматирования похож на [старом стиле. форматирование] (http://docs.python.org/2/tutorial/inputoutput.html#old-string-formatting), используемый в python, OP использует [форматирование строки в новом стиле] (http: //docs.python .org/2/library/string.html # formatspec) –

+0

Ах, из вопроса, который я не знал, он поставил много emp hasis при использовании фигурных скобок. Я думал, что он просто хотел, чтобы форматировать строку, не объединяя строки и переменные вместе. –

+1

Спасибо за комментарий кстати. В противном случае я бы не понял, почему у @ rgettman было так много оборотов. –

3

Вы можете сделать это (используя String.format):

int x = 4; 
int y = 5; 

String res = String.format("%d + %d = %d", x, y, x+y); 
System.out.println(res); // prints "4 + 5 = 9" 

res = String.format("%d %d", x, y); 
System.out.println(res); // prints "4 5" 
Смежные вопросы