Java打印包含整数的String

时间:2012-11-18 19:41:05

标签: java string println

我对此有疑问。

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

输出: M11

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

请求您帮我正确打印。

9 个答案:

答案 0 :(得分:14)

试试这个:

System.out.printf("M%d%n", number+1);

%n是换行符

答案 1 :(得分:9)

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

System.out.println("M"+(number+1));

答案 2 :(得分:4)

它与java连接String的优先顺序有关,

基本上Java正在说

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

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

"M"+(number+1)

现在读取

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

答案 3 :(得分:3)

尝试

System.out.println("M"+(number+1));

答案 4 :(得分:2)

试试这个:

System.out.println("M"+(number+1));

答案 5 :(得分:2)

从不变量中分离数据的更简洁方法:

int number=1;
System.out.printf("M%d%n",number+1);

答案 6 :(得分:2)

  System.out.println("M"+number+1);

java中的字符串连接以这种方式工作:

如果第一个操作数是String类型并使用+运算符,则它会合并下一个操作数,结果将是一个String。

尝试

 System.out.println("M"+(number+1));

在这种情况下,因为() paranthesis具有最高优先级,所以括号内的事物将首先被评估。然后,结果int值将与字符串文字连接,结果为字符串“M2”

答案 7 :(得分:2)

System.out.println("M"+number+1);

此处您正在使用+作为println()方法中的连接运算符。

要使用+进行求和,您需要赋予它高优先级,您可以使用括号覆盖它,如下所示:

System.out.println("M"+(number+1));

答案 8 :(得分:-2)

如果在字符串后执行+操作,则将其视为串联:

"d" + 1 + 1     // = d11 

反之,+反之亦然:

1 + 1 + "d"     // = 2d