int无法转换为String

时间:2016-04-24 03:54:44

标签: java

那里有没有可以帮助我解决这个问题的人。我知道这可能是你用java编写的最简单的东西,但是我无法想象我的生活。我刚刚开始学习java,这让我陷入困境。 当我编译代码时,它得到错误" int无法转换为String console.printf(xy);

import java.io.Console;
public class ExampleProgram {
  public static void main(String[]arg) {
    Console console = System.console();
    console.printf("Below is a Power Calculation");
    int x = 2;
    int y = 2;
    int xy = x * y;
    console.printf(xy);
  }
}

4 个答案:

答案 0 :(得分:3)

使用Formatter API

中描述的printf格式说明符
Console console = System.console();
// note that console is never guaranteed to be non-null, so check it!
if (console == null) {
    // error message
    return;
}
console.printf("Below is a Power Calculation%n");  // %n for platform independent new-line
int x = 2;
int y = 2;
int xy = x * y;
console.printf("%d", xy); // %d for decimal display

答案 1 :(得分:1)

这有两个部分:

  1. 将整数转换为字符串可以通过多种方式完成。例如:

      xy + ""
    

    是一种依赖于字符串连接运算符的特殊语义的惯用方法。

      Integer.toString(xy)
    

    可能效率最高。

      Integer.valueOf(xy).toString()
    

    xy转换为Integer,然后应用toString()实例方法。

    无效 1

      xy.toString()
    

    因为1)您无法将方法应用于原语,2)Java不会在该上下文中将xy自动装箱到Integer

  2. 打印字符串的方式是“有点不对”。 printf方法的签名为printf(String format, Object... args)。当您按照自己的方式调用它时,您将数字作为format和零长度args参数一起传递。

    printf方法将解析format查找表示替换标记的%个字符。幸运的是,数字字符串不包含这样的字符,所以它将按字面打印。

    但无论如何,使用printf的“正确”方式是:

       printf("%d", xy)
    

    依赖于printf来进行字符串转换。

  3. 还有另一个潜在的问题。如果您在“无头”系统上运行此程序,则System.console()方法可能会返回null。如果发生这种情况,您的程序将因NPE崩溃。

    1 - 在Java 8上用一个简单的测试用例确认。

答案 2 :(得分:0)

使用:  console.printf(String.valueOf(xy));

答案 3 :(得分:-1)

尝试使用

$(document).ready(function(){
	$('select').change(function(){
  	var opt = $(this).find('option:selected');
    console.log(opt.val());
  });
});