Java打印包含整数的String

Har*_*Raj 11 java string println

我有一个疑问如下.

public static void main(String[] args) throws IOException{
  int number=1;
  System.out.println("M"+number+1);
}
Run Code Online (Sandbox Code Playgroud)

输出: M11

但我想把它打印成M2而不是M11.我无法对++进行编号,因为变量与for循环有关,如果我这样做会给我不同的结果,并且无法使用另一个print语句打印它,因为输出格式会发生变化.

请求您帮我正确打印.

Ósc*_*pez 16

试试这个:

System.out.printf("M%d%n", number+1);
Run Code Online (Sandbox Code Playgroud)

%n换行在哪里


Roh*_*ain 10

在总和周围添加一个括号,以强制执行sum先发生.这样,bracket首先评估具有最高优先级的,然后进行评估concatenation.

System.out.println("M"+(number+1));
Run Code Online (Sandbox Code Playgroud)


Mad*_*mer 5

它与Java连接字符串的优先顺序有关,

基本上Java是说

  • "M"+number = "M1"
  • "M1"+1 = "M11"

您可以像数学一样重载优先级

"M"+(number+1)
Run Code Online (Sandbox Code Playgroud)

现在读

  • "M"+(number+1)= "M"+(1+1)= "M"+2="M2"