2017-02-13 102 views
-4

这里的新手,我正在制作一个程序,产生一个随机的序数和正确的后缀
(I.E. 1st,2nd,3rd ...)我无法得到randomInt();上班。我不断收到以下错误:在Java中的随机整数错误

.\Random.java:6: error: class RandomInteger is public, should be declared in a 
file named RandomInteger.java 
public final class RandomInteger { 
      ^ 
RandomNumSuffix.java:8: error: cannot access Random 
    Random rand = new Random(); 
    ^ 
    bad source file: .\Random.java 
    file does not contain class Random 
    Please remove or make sure it appears in the correct subdirectory of the 
sourcepath. 

我在Google上搜索过和Stack Overflow找到解决方案无济于事。我甚至复制了
并编译了使用randomInt()的互联网上的其他程序;他们都会产生相同的错误。你能告诉我我做错了什么吗?这里是我的程序的代码:

import java.util.*; 

class RandNumSuffix 
{ 
    public static void main(String [] args) 
    { 
     Scanner scan = new Scanner(System.in); 
     Random rand = new Random(); 
     String numSuffix = ""; 
     String answer = ""; 
     String repeat = ""; 
     int x; 

     while(repeat.equalsIgnoreCase("yes")||repeat.equalsIgnoreCase("y")) 
     { 
      x = rand.nextInt(1000000)+1; 
      if (x == 1) 
      { 
       numSuffix = "st"; 
       answer = x + numSuffix + ", "; 
       System.out.print(answer); 
      } 
      if (x == 2) 
      { 
       numSuffix = "nd"; 
       answer = x + numSuffix + ", "; 
       System.out.print(answer); 
      } 
      if (x == 3) 
      { 
       numSuffix = "rd"; 
       answer = x + numSuffix + ", "; 
       System.out.print(answer); 
      } 
      if (x > 20 && x < 101 && x%10==1) 
      { 
       numSuffix = "st"; 
       answer = x + numSuffix + ", "; 
       System.out.print(answer); 
      } 
      if (x > 20 && x < 101 && x%10==2) 
      { 
       numSuffix = "nd"; 
       answer = x + numSuffix + ", "; 
       System.out.print(answer); 
      } 
      if (x > 20 && x < 101 && x%10==3) 
      { 
       numSuffix = "rd"; 
       answer = x + numSuffix + ", "; 
       System.out.print(answer); 
      } 
      if (x>100 && x%10==1 && x%100!=11) 
      { 
       numSuffix = "st"; 
       answer = x + numSuffix + ", "; 
       System.out.print(answer); 
      } 
      if (x>100 && x%10==2 && x%100!=12) 
      { 
       numSuffix = "nd"; 
       answer = x + numSuffix + ", "; 
       System.out.print(answer); 
      } 
      if (x>100 && x%10==3 && x%100!=13) 
      { 
       numSuffix = "rd"; 
       answer = x + numSuffix + ", "; 
       System.out.print(answer); 
      } 
      else 
      { 
       if (answer == "") 
       { 
        numSuffix = "th"; 
        System.out.print(x + numSuffix + ", "); 
       } 
      } 


     answer = ""; 
     System.out.println("Would you like to generate another number?"); 
     answer = scan.nextLine(); 
     } 
    } 
} 

也欢迎对我的计划的批评。谢谢。

+2

*错误:类RandomInteger是公共的,应该在名为RandomInteger.java的 文件中声明*这就是所有内容。文件名和公共类名应该匹配 –

+1

在你的问题中太多的不一致:文件Random.java,RandomInteger类,但是发布的代码源是指RandNumSuffix类?请花时间正确清理一切... –

回答

2

您的Random.java文件应命名为RandomInteger.java。重命名该文件并重试编译。它应该工作正常。

当您将类声明为public class XYZ时,包含该代码的文件名必须命名为XYZ.java


希望这有助于!

+0

我没有一个random.java文件,也许这是我的问题。我认为Random是java.util包的一部分。这是否意味着每次我想生成一个随机数时,我都需要为它创建一个类? – Turbowagon

+0

不需要。 – anacron