java 菜鸟新手问:为何printf输出不正确?

来源:百度知道 编辑:UC知道 时间:2024/06/23 20:19:29
很简单的问题。。如果几年前肯定没问题,不过现在我用的eclipse平台调试程序,就不知该怎样了
比如:一个很简单的代码:
public class ford {

public static void main(String[] args) {

for(int j=1;j<10;j++) {
for(int i=2;i<10;i++) {

System.out.printf("%d*%d=%2d",i,j,i*j);

}
System.out.println();
}

}
}
很简单的吧。。。,调试结果提示错误信息:
Exception in thread "main" java.lang.Error: 无法解析的编译问题:
类型 PrintStream 中的方法 printf(String, Object[])对于自变量(String, int, int, int)不适用

at ford.main(ford.java:21)
怎么回事???
1.我更换了j2ee 和j2se1.6的sdk和jdk。。均不成功。。为什么?
怎么办?
其实我看调试信息也是安妮说得那么想的,不过仍然错误:
类型不匹配:不能从 int 转换为 Integer

我之前也试过,看来只能说1.6又做了什么改动?不过他还是支持printf的啦
我英文不好,而且只有现在才有的是时间坐在电脑前敲敲打打
还有,我知道JAVA是有中文API的,前几年才出,只是我觉得找起来好麻烦。。。
=========
其实我知道自动装箱,我也是那样想的,只是还没有看到那页,正好登录百度,就先问问了。。 既然你说可以那自然是行得通的 我到时候再试试

感谢你们的回答

我用的是1.5的
成功通过!

结果如下:
2*1= 23*1= 34*1= 45*1= 56*1= 67*1= 78*1= 89*1= 9
2*2= 43*2= 64*2= 85*2=106*2=127*2=148*2=169*2=18
2*3= 63*3= 94*3=125*3=156*3=187*3=218*3=249*3=27
2*4= 83*4=124*4=165*4=206*4=247*4=288*4=329*4=36
2*5=103*5=154*5=205*5=256*5=307*5=358*5=409*5=45
2*6=123*6=184*6=245*6=306*6=367*6=428*6=489*6=54
2*7=143*7=214*7=285*7=356*7=427*7=498*7=569*7=63
2*8=163*8=244*8=325*8=406*8=487*8=568*8=649*8=72
2*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81

printf应该是1.5后出现的,JAVA里也有

==============
手头上没有1.6的,无法帮你了

看错误,你试试这个
System.out.printf("%d*%d=%2d",new Integer[]{i,j,i*j});

====================
如果第一次说没有,还情有可原,毕竟这个比较冷门,但一直坚持的,为何不去看看API呢?

这是java,不是c。
System.out.printf("%d*%d=%2d",i,j,i*j);

修改为:
Syetem.out.print(i+"*"+j+"="+i*j);

晕哪,还真的可以用printf(),我试了,java居然支持这么写

不过估计这不是sun推荐大家使