Java:为什么我的书开始将字符串变量与空字符串连接在一起,特别是使用 System.out.print()?
Java: Why does my book start concatenating string vars with concatenation with an empty string, specifically using System.out.print()?
在阅读学校为 Java 分配的书籍时,我一直看到字符串连接以空字符串开头。
具体来说,我只在 System.out.print*()
语句(其中 * 是“”或"ln")中连接字符串变量时才看到它。
我试过寻找原因无济于事;我怀疑我的措辞有问题。
我书中的一个例子是:System.out.println("" + stringVar + anotherStringVar);
在本书接近尾声时,我发现了以下内容:
To ensure printing of characters, start your print statement as: System.out.println("" + ...
在我的书的另一部分中,我发现 System.out.print(num1 + " + " + num2 + " is " + (num1 + num2));
似乎违反了它自己的规则。
为什么我的书推荐这样做?为什么它有时似乎忽略了这条规则?
您的书试图避免决定 +
何时表示串联以及何时表示加法的复杂规则有点过火。作为练习,比较以下输出:
System.out.println(1 + 2);
System.out.println("" + 1 + 2);
编辑: 刚刚注意到关于确保 "printing of characters" 的引述。这是否是指 char
数据类型?这是一个特别需要注意的令人困惑的场景,因为 char
实际上是一种数字数据类型。看看在上面的例子中用 'a' 和 'b' 替换 1 和 2 会发生什么。
在阅读学校为 Java 分配的书籍时,我一直看到字符串连接以空字符串开头。
具体来说,我只在 System.out.print*()
语句(其中 * 是“”或"ln")中连接字符串变量时才看到它。
我试过寻找原因无济于事;我怀疑我的措辞有问题。
我书中的一个例子是:System.out.println("" + stringVar + anotherStringVar);
在本书接近尾声时,我发现了以下内容:
To ensure printing of characters, start your print statement as:
System.out.println("" + ...
在我的书的另一部分中,我发现 System.out.print(num1 + " + " + num2 + " is " + (num1 + num2));
似乎违反了它自己的规则。
为什么我的书推荐这样做?为什么它有时似乎忽略了这条规则?
您的书试图避免决定 +
何时表示串联以及何时表示加法的复杂规则有点过火。作为练习,比较以下输出:
System.out.println(1 + 2);
System.out.println("" + 1 + 2);
编辑: 刚刚注意到关于确保 "printing of characters" 的引述。这是否是指 char
数据类型?这是一个特别需要注意的令人困惑的场景,因为 char
实际上是一种数字数据类型。看看在上面的例子中用 'a' 和 'b' 替换 1 和 2 会发生什么。