Java int不能转换为字符串
有没有人能帮我解决这个问题。我知道这可能是用java编写的最简单的代码,但我一辈子都搞不懂。我刚刚开始学习java,这让我陷入了困境。 当我编译代码时,它得到错误“int不能转换为字符串console.printf(xy) 试用Java int不能转换为字符串,java,Java,有没有人能帮我解决这个问题。我知道这可能是用java编写的最简单的代码,但我一辈子都搞不懂。我刚刚开始学习java,这让我陷入了困境。 当我编译代码时,它得到错误“int不能转换为字符串console.printf(xy) 试用 console.printf(xy+""); 使用printf格式说明符,如中所述: 这有两个部分: 可以通过多种方式将整数转换为字符串。例如: xy + "" 是一种惯用方法,它依赖于字符串连接运算符的特殊语义 Integer.toString(xy)
console.printf(xy+"");
使用printf格式说明符,如中所述:
这有两个部分:
xy + ""
是一种惯用方法,它依赖于字符串连接运算符的特殊语义
Integer.toString(xy)
可能是最有效的
Integer.valueOf(xy).toString()
将xy
转换为整数
,然后应用toString()
实例方法
但是这个不起作用1
因为1)不能将方法应用于原语,2)Java不会在该上下文中将xy
自动装箱到整数
printf
方法的签名是printf(字符串格式,对象…args)
。按您的方式调用它时,您将数字作为格式
以及零长度args
参数传递
printf
方法将解析格式
以查找表示替换标记的%
字符。幸运的是,数字字符串不包含此类字符,因此将按字面形式打印
但无论如何,使用printf的“正确”方法是:
printf("%d", xy)
它依赖于printf
进行数字到字符串的转换system.console()
方法可能返回null
。如果发生这种情况,您的程序将因NPE而崩溃
1-通过Java 8上的简单测试用例确认。使用:
console.printf(String.valueOf(xy));
您不应该使用toString()吗?返回时出现错误:int不能被取消引用您需要检查控制台是否为null。根据用户首选项的设置方式,它不能保证被实例化。这是因为您不能在原语上调用方法。我不确定@ManoDestra的建议是否合理。即使它可以工作,使用串联也会失败使用printf
的用途。
Integer.valueOf(xy).toString()
xy.toString()
printf("%d", xy)