简单java问题,输出函数报错

简单java问题,输出函数报错

问题描述:

Java初学,编个简单的输出代码就出错了,在别人的电脑上就没问题
图片说明
报错是类型Printstream中的方法printf(Locale,String,Object[])对于参数(String,String,String)不适用
求指教

可能 是 JDK 版本 低 或者 开发工具的 JAVA Complier 版本选的低

我用 eclipse 1.7 编译 执行 正常

Java中是:System.out.println("...."); 或者不换行的:System.out.print("...")

c中:printf("s%","")

printf(直接写要输出的参数)

比如:String a = "string" ..printf(a) 输出:a的值 不需要任何格式化,printf可以输出任意类型的值

你的做法是c的游戏规则,java不用要任何格式指定

JAVA里你可以直接这样写
int a=1;
String b="rt";
System.out.println(a);
System.out.println(b);
对于非String的基本类型,程序自动转换成String

你是不是写c写习惯了

有那么复杂么???你要是想用printf呢,就要按指定的参数类型来写,printf有两种参数形式,一个是两个参数的,一个是三个参数的。很显然你的是三个参数的,第一个参数是要指定Locale,你这里写的不是Locale对象,因此直接报错了,你写成我这样的就行了,此外printf输出时不会换行,你自己加一个换行就行了,下面的代码中第一个就是带换行的。

public static void main(String[] args) {
        String str = "007";
        System.out.printf(Locale.CHINA, "%s", str+"\r\n");
        System.out.printf(Locale.CHINA, "%s", str);
        System.out.printf(Locale.CHINA, "%s", str);
    }

乍一看还真觉得怎么回事了,再一看是多写了个f,你用快捷键sysout然后按alt+/

醉了。。。 一看以前肯定是做C的。。哈哈

我按照你写的也没问题,会不会是jre版本太低呀

我也写的没问题,jre1.8

检查一下jdk的版本吧,JDK5.0允许象C语言那样直接用printf()方法来格式化输出。