"Cannot resolve symbol error" for printf



这段代码在编译过程中导致错误…我不知道我做错了什么?

CoinFlippingContest.java:27: cannot resolve symbol
symbol : method printf (java.lang.String,int,int)
location: class java.io.PrintStream
System.out.printf(" %d t %d",(i+1),frequency[i]);
       ^
1 error

一切都必须在Java 1.4.2中。下面是代码:

//IMPORT JAVA UTILITIES AND IO
import java.io.*;
import java.util.*;
//DEFINE CLASS
public class CoinFlippingContest
{
public static void main( String args[] )
{
//GENERATES RANDOM NUMBER
Random randomNumbers = new Random(); 
int[] frequency = new int[10];
for(int i=0; i<10; i++)
frequency[i]=0;
int number;
//RESULTS FOR 6000
for ( int col = 1; col <= 6000; col++ )
{
number = 1 + randomNumbers.nextInt( 10 );
frequency[number]++;
}
//DISPLAY THE HEADINGS
System.out.println( "numbertFrequency" ); 
for(int i=0; i<10; i++)
System.out.printf(" %d t %d",(i+1),frequency[i]);
//NUMBER OF HEADS AND TAILS IN TOTAL
int even = 0, odd = 0;
for(int i=0; i<10; i++)
{
if(i%2==0)
odd +=frequency[i];
else even += frequency[i];
}
//OUTPUT NUMBER OF HEADS AND TAILS EVEN AND ODDS
System.out.println("nheads: "+even+"ntails: "+odd);
}
}

printf仅从1.5版本开始可用,1.4.2还没有。既然你在问(见注释),这将做:

for(int i = 0; i < 10; i ++)
{
    System.out.println((i + 1) + "t" + frequency[i]);
}

正如错误消息告诉你的那样,在Java 1.4.2中没有PrintStreamsprintf方法。当前的javadoc告诉我们PrintStream#printf()是在Java 1.5中添加的。

使用现代版本的Java(1.4已经超过十年了),或者使用printf()以外的方法。

printf不在PrintStream 1.4.2 API中。

http://docs.oracle.com/javase/1.4.2/docs/api/java/io/PrintStream.html

但是,例如,在1.5 API(或更高版本)中

http://docs.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html

最新更新