繁体   English   中英

Java打印包含整数的String

[英]Java printing a String containing an integer

我有一个疑问如下。

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

输出: M11

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

请求您帮我正确打印。

尝试这个:

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

%n是换行符

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

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

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

基本上Java就是这样说的

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

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

"M"+(number+1)

这现在读了

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

尝试

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

尝试这个:

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

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

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

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

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

尝试

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

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

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

这里你在println()方法中使用+作为它的连接运算符。

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

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

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

"d" + 1 + 1     // = d11 

然而,如果你做反之亦然+被视为补充:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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