Java 为什么要印刷&引用+;变量单独输出每个变量,没有间距?

Java 为什么要印刷&引用+;变量单独输出每个变量,没有间距?,java,Java,我的一项作业包含以下代码: System.out.println("" + x + y + count); 它单独输出x、y和count的值,不带任何空格。我想在网上了解更多。然而,我似乎找不到合适的关键字在网上搜索。有人能给我解释一下这背后的逻辑吗?或者给我指出一个这样的情况的名称或关键字 我一直都知道“”是一个打印字符串的工具,所以我对此感到困惑 提前感谢。该“是一个空字符串。在Java中,当您将字符串与其他可以转换为字符串的原语连接在一起时,结果就是一个字符串

我的一项作业包含以下代码:

    System.out.println("" + x + y + count);
它单独输出x、y和count的值,不带任何空格。我想在网上了解更多。然而,我似乎找不到合适的关键字在网上搜索。有人能给我解释一下这背后的逻辑吗?或者给我指出一个这样的情况的名称或关键字

我一直都知道“”是一个打印字符串的工具,所以我对此感到困惑

提前感谢。

是一个空字符串。在Java中,当您将字符串与其他可以转换为字符串的原语连接在一起时,结果就是一个字符串。这意味着代码

System.out.println("" + something);
是一种不同的写作方式

System.out.println(String.valueOf(something));
然而,在您的场景中,
“+x+y+count
意味着元素被转换为字符串,然后被连接起来-这意味着如果
x==1
y==2
count==3
,结果将是
123
。如果只想将结果强制转换为字符串,则必须指示在强制转换为字符串之前应进行计算,例如使用括号

System.out.println("" + (x+y+count));
此操作的输出将是
6

是一个空字符串。在Java中,当您将字符串与其他可以转换为字符串的原语连接在一起时,结果就是一个字符串。这意味着代码

System.out.println("" + something);
是一种不同的写作方式

System.out.println(String.valueOf(something));
然而,在您的场景中,
“+x+y+count
意味着元素被转换为字符串,然后被连接起来-这意味着如果
x==1
y==2
count==3
,结果将是
123
。如果只想将结果强制转换为字符串,则必须指示在强制转换为字符串之前应进行计算,例如使用括号

System.out.println("" + (x+y+count));

这将是
6

的输出,或者您可以使用如下字符串格式:

System.out.printf("%d%d%d", x, y, count);

也可以使用如下字符串格式:

System.out.printf("%d%d%d", x, y, count);

如果我们应用标准Java优先规则,则语句:

System.out.println("" + x + y + count);
相当于

System.out.println((("" + x) + y) + count);
然后我们看一下
+

  • 如果
    a
    b
    的静态类型都是数字类型(原语数字或其装箱类型),则
    a+b
    是数字加法

  • 否则,
    a+b
    是字符串连接。这两个参数被转换为字符串,字符串被连接起来

基于此,我们可以说示例中的所有
+
运算符都将被视为字符串连接


如果希望在
x
y
count
之间使用空格,则需要添加一些字符串文字;e、 g

System.out.println("" + x + " " + y + " " + count);
或者,更简单地说:

System.out.println(x + " " + y + " " + count);
System.out.println(x + y + count);

如果要添加
x
y
count
(假设它们是数字),则可以编写以下代码:

System.out.println("" + (x + y + count));
或者,更简单地说:

System.out.println(x + " " + y + " " + count);
System.out.println(x + y + count);
后者使用不同的重载
println


我一直都知道
是一种打印字符串的工具,所以我对此感到困惑


嗯。。。它实际上是一个空字符串文本。用法
“”+x
只是一种将
x
转换为
字符串的习惯用法。空字符串文字还有其他用途。主要是用零字符表示字符串。

如果我们应用标准Java优先规则,语句:

System.out.println("" + x + y + count);
相当于

System.out.println((("" + x) + y) + count);
然后我们看一下
+

  • 如果
    a
    b
    的静态类型都是数字类型(原语数字或其装箱类型),则
    a+b
    是数字加法

  • 否则,
    a+b
    是字符串连接。这两个参数被转换为字符串,字符串被连接起来

基于此,我们可以说示例中的所有
+
运算符都将被视为字符串连接


如果希望在
x
y
count
之间使用空格,则需要添加一些字符串文字;e、 g

System.out.println("" + x + " " + y + " " + count);
或者,更简单地说:

System.out.println(x + " " + y + " " + count);
System.out.println(x + y + count);

如果要添加
x
y
count
(假设它们是数字),则可以编写以下代码:

System.out.println("" + (x + y + count));
或者,更简单地说:

System.out.println(x + " " + y + " " + count);
System.out.println(x + y + count);
后者使用不同的重载
println


我一直都知道
是一种打印字符串的工具,所以我对此感到困惑


嗯。。。它实际上是一个空字符串文本。用法
“”+x
只是一种将
x
转换为
字符串的习惯用法。空字符串文字还有其他用途。主要的方法是用零字符表示字符串。

“”+x+…
是将表达式转换为字符串的一种方法。您还可以执行
Integer.toString(x)+…
String.valueOf(x)+…
。如果您想要有空格,您必须添加空格:
“”+x+“”+y+“”+count
。或者使用格式来提高可读性
printf(“%d%d%d%n”,x,y,count)
。文档:字符串连接是正确的关键字。
“+x+…
是将表达式转换为字符串的一种方法。您还可以执行
Integer.toString(x)+…
String.valueOf(x)+…
。如果您想要有空格,您必须添加空格:
“”+x+“”+y+“”+count
。或者使用格式化以提高可读性
printf(“%d%d%d%n”,x,y,count)
。文档:字符串串联是正确的关键字。我已将其更改为
String::valueOf
,以避免数据类型冲突。应单独转换它们。。。比如:
System.out.println(String.valueOf(x)+String.valueOf(y)+String.valueOf(count))