java - 为什么我在 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);
}
}
我只是想知道为什么上面的这个工作,而做' '
却没有。它与数据类型有关吗?
解决方案
' '
是一个char
。它将被自动转换为int
(使用 的ASCII 码,blank
它的值为32
)。然后执行加法(5 + 32 + 9
,这将评估为46
)。这就解释了为什么我们看到46
被打印出来。
替换' '
为""
将强制将int
-values 自动转换为String
s,然后它将按预期工作。
另一种可能的解决方案是使用System.out.printf("%d%d%n", a, b);
.
推荐阅读
- xamarin.android - 我在哪里可以下载带有 Android 包的旧 Xamarin Studios?
- php - 将 2 个字段连接到另一个表中
- firebase - 如何修复此错误,“文档”在 null 上调用
- laravel - Laravel 5.5 检查在插入之前,您会获取您的信息,如果每个服务 ID
- apache-kafka - 关于将@KafkaListener autoStartup = "false" 用于多个主题的问题
- php - mysql查询加入表并选择那些不存在的?
- javascript - 如何将 Bootstrap JavaScript 包含到 React 中
- azure - Azure sql 数据库导出到存储 blob 失败
- python - 节流器类的目的是什么,当我可以简单地使用 time.sleep()
- angular - 当一些 Ionic 或 html 甚至加载时如何调用函数