[英]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.