2017-02-13 10 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とスタックオーバーフローを検索し、無駄な解決策を探しています。私は
をコピーし、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はpublicであり、 という名前のファイル(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