首页 > 解决方案 > 为什么我在 Java 中得到不同的加法和错误

问题描述

我对Java真的很陌生。我有一个关于数字的问题。我的任务是并排打印 2 个数字。

例如,如果有 2 个数字:a = 5, b = 9,我应该并排打印它们。所以输出看起来59

在python中,我们可以这样做:

print(a,b)

即使它增加了一个空格,我也可以稍后将其删除。

但是在Java中。当我这样做时System.out.println(a,b),我得到:

error: no suitable method found for println(int,int)
        System.out.println(a,b);
                  ^

所以在挠了挠头之后,我想出了System.out.println(a+''+b) 然后它给出了:

error: empty character literal
        System.out.println(a+''+b);
                             ^

因此,查看错误,它看起来''是无效的。所以我做' ' 了我得到的结果是:

46

为什么我收到错误消息?当我做:

System.out.println(a+""+b);

它打印我想要的:59

这是我的代码(工作):

public class Main
{
    public static void main(String[] args) {
        int a=5;
        int b=6;
        System.out.println(a+""+b);
    }
}

我只是想知道为什么上面的这个工作,而做' '却没有。它与数据类型有关吗?

标签: java

解决方案


' '是一个char。它将被自动转换为int(使用 的ASCII 码blank它的值为32)。然后执行加法(5 + 32 + 9,这将评估为46)。这就解释了为什么我们看到46被打印出来。

替换' '""将强制将int-values 自动转换为Strings,然后它将按预期工作。

另一种可能的解决方案是使用System.out.printf("%d%d%n", a, b);.

Ideone Demo


推荐阅读