0

我一直在试图找出我在哪里犯了错误。我是 Java 新手,正在上入门课。基本上我必须创建一个 countletteranarray 程序,在其中调用我之前创建的类。我试图添加库无济于事,无法弄清楚如何让它工作。我收到的整个程序中唯一的错误是无法为 randomcharacter.RandomCharacter 添加导入。下面是我的代码:package countlettersinarray;

/**
 *
 * @author james
 */
public class CountLettersInArray {

    public static void main(String[] args) {
        //Declare and create an array
        char[] chars = createArray();

        //Display the array
        System.out.println("The lowercase letters are:");
        displayArray(chars);

        //Count the occurences of each letter
        int[] counts = countLetters(chars);

        //Displahy counts
        System.out.println();
        System.out.println("The occurences of each letter are:");
        displayCounts(counts);        
    }

    /**Create an array of characters**/
    public static char[] createArray() {
        //Declare an array of characters and create it
        char[] chars = new char[100];

        //Create lower case letters randomly and assign
        //them to the array
        for (int i = 0; i < chars.length; i++)
            chars[i] = RandomCharacter.getRandomLowerCaseLetter();

        //Return the array
        return chars;
    }

    public static void displayArray(char[] chars) {
        //Display characters in the array 20 on each line
        for (int i = 0; i < chars.length; i++) {
            if ((i + 1) % 20 == 0)
                System.out.println(chars[i]);
            else 
                System.out.print(chars[i] + " ");
        }
    }
        /** Count the occurences of each letter*/
        public static int[] countLetters(char[] chars) {
            //Declare and create an array of 26 int
            int[] counts = new int[26];

            //For each lower case letter in the array, count it
            for (int i = 0; i < chars.length; i++)
                counts[chars[i] - 'a']++;

            return counts;package countlettersinarray;


/**
 *
 * @author james
 */
public class CountLettersInArray {

    public static void main(String[] args) {
        //Declare and create an array
        char[] chars = createArray();

        //Display the array
        System.out.println("The lowercase letters are:");
        displayArray(chars);

        //Count the occurences of each letter
        int[] counts = countLetters(chars);

        //Displahy counts
        System.out.println();
        System.out.println("The occurences of each letter are:");
        displayCounts(counts);        
    }

    /**Create an array of characters**/
    public static char[] createArray() {
        //Declare an array of characters and create it
        char[] chars = new char[100];

        //Create lower case letters randomly and assign
        //them to the array
        for (int i = 0; i < chars.length; i++)
            chars[i] = RandomCharacter.getRandomLowerCaseLetter();

        //Return the array
        return chars;
    }

    public static void displayArray(char[] chars) {
        //Display characters in the array 20 on each line
        for (int i = 0; i < chars.length; i++) {
            if ((i + 1) % 20 == 0)
                System.out.println(chars[i]);
            else 
                System.out.print(chars[i] + " ");
        }
    }
        /** Count the occurences of each letter*/
        public static int[] countLetters(char[] chars) {
            //Declare and create an array of 26 int
            int[] counts = new int[26];

            //For each lower case letter in the array, count it
            for (int i = 0; i < chars.length; i++)
                counts[chars[i] - 'a']++;

            return counts;
        }
        /**Display counts*/
        public static void displayCounts(int[] counts) {
            for (int i = 0; i < counts.length; i++) {
                if ((i + 1) % 10 == 0)
                    System.out.print((counts[i] + " " + (char)(i + 'a')));
                else
                    System.out.print(counts[i] + " " + (char)(i + 'a') + " ");
            }
        }
}

        }
        /**Display counts*/
        public static void displayCounts(int[] counts) {
            for (int i = 0; i < counts.length; i++) {
                if ((i + 1) % 10 == 0)
                    System.out.print((counts[i] + " " + (char)(i + 'a')));
                else
                    System.out.print(counts[i] + " " + (char)(i + 'a') + " ");
            }
        }
}

这是 RandomCharacter.getRandomLowerCaseLetter(); 我想打电话的班级:

package randomcharacter;

/**
 *
 * @author james
 */
public class RandomCharacter {
        /**Generate a random character between ch1 and ch2**/


    public static char getRandomCharacter(char ch1, char ch2) {
        return (char)(ch1 + Math.random() * (ch2 - ch1 + 1));    
    }
    //Generate a lower case letter
    public static char getRandomLowerCaseLetter() {
        return getRandomCharacter('a', 'z');
    }
    //Generate an upper case letter
    public static char getRandomUpperCaseLetter() {
        return getRandomCharacter('A', 'B');
    }
    //Generate a random number
    public static char getRandomDigitCharacter() {
        return getRandomCharacter('0', '9');
    }
    //Generate a random character
    public static char getRandomCharacter() {
        return getRandomCharacter('\u0000', '\uFFFF');
    }
}
4

3 回答 3

0

您的第一堂课在默认包中。您的第二堂课在 package 中randomcharacter。您的第二堂课应该在您的第一堂课目录./randomcharacter所在.的目录中。

您应该能够在 NetBeans 中的ProjectFiles视图下直观地看到这一点。

于 2013-03-10T15:51:58.550 回答
0

你应该输入

package randomcharacter;

在您的呼叫课程中-CountLettersInArray

然后才RandomCharacter.getRandomLowerCaseLetter()可以访问。

我检查了你的程序 -

您的两个课程将分别是-

1>随机字符.java

package randomcharacter;

/**
 *
 * @author james
 */
public class RandomCharacter {
        /**Generate a random character between ch1 and ch2**/


    public static char getRandomCharacter(char ch1, char ch2) {
        return (char)(ch1 + Math.random() * (ch2 - ch1 + 1));    
    }
    //Generate a lower case letter
    public static char getRandomLowerCaseLetter() {
        return getRandomCharacter('a', 'z');
    }
    //Generate an upper case letter
    public static char getRandomUpperCaseLetter() {
        return getRandomCharacter('A', 'B');
    }
    //Generate a random number
    public static char getRandomDigitCharacter() {
        return getRandomCharacter('0', '9');
    }
    //Generate a random character
    public static char getRandomCharacter() {
        return getRandomCharacter('\u0000', '\uFFFF');
    }
}

2> CountLettersInArray.java

package randomcharacter;

/**
*
* @author james
*/
public class CountLettersInArray {

   public static void main(String[] args) {
       //Declare and create an array
       char[] chars = createArray();

       //Display the array
       System.out.println("The lowercase letters are:");
       displayArray(chars);

       //Count the occurences of each letter
       int[] counts = countLetters(chars);

       //Displahy counts
       System.out.println();
       System.out.println("The occurences of each letter are:");
       displayCounts(counts);        
   }

   /**Create an array of characters**/
   public static char[] createArray() {
       //Declare an array of characters and create it
       char[] chars = new char[100];

       //Create lower case letters randomly and assign
       //them to the array
       for (int i = 0; i < chars.length; i++)
           chars[i] = RandomCharacter.getRandomLowerCaseLetter();

       //Return the array
       return chars;
   }

   public static void displayArray(char[] chars) {
       //Display characters in the array 20 on each line
       for (int i = 0; i < chars.length; i++) {
           if ((i + 1) % 20 == 0)
               System.out.println(chars[i]);
           else 
               System.out.print(chars[i] + " ");
       }
   }
       /** Count the occurences of each letter*/
       public static int[] countLetters(char[] chars) {
           //Declare and create an array of 26 int
           int[] counts = new int[26];

           //For each lower case letter in the array, count it
           for (int i = 0; i < chars.length; i++)
               counts[chars[i] - 'a']++;

           return counts;
       }
       /**Display counts*/
       public static void displayCounts(int[] counts) {
           for (int i = 0; i < counts.length; i++) {
               if ((i + 1) % 10 == 0)
                   System.out.print((counts[i] + " " + (char)(i + 'a')));
               else
                   System.out.print(counts[i] + " " + (char)(i + 'a') + " ");
           }
       }
}

这将显示输出 -

The lowercase letters are:
z n s q a m a h w f f o c e f q i m e g
i g w k p q x f g z l h r c d g a a y l
q z n b y k i w n b b s z a k e z o e x
g b p b l t d o c n l q m h p m c t y q
b y y r k x c t i m f o q i g o k w c w

The occurences of each letter are:
5 a 6 b 6 c 2 d 4 e 5 f 6 g 3 h 5 i 0 j5 k 4 l 5 m 4 n 5 o 3 p 7 q 2 r 2 s 3 t0 u 0 v 5 w 3 x 5 y 5 z 

希望,这能解决你的问题。

于 2013-03-10T15:49:17.867 回答
0

而不是使用 RandomCharacter.getRandomLowerCaseLetter();

只需使用 Random 类。

char[] chars = new char[100];

        for (int i = 0; i < chars.length; i++) {

            Random random = new Random();

            char randomChar = (char) (random.nextInt(26) + 'a');

            chars[i] = randomChar;
        }

此代码将解决您的问题并为您提供所需的相同输出。

于 2021-04-09T13:56:33.327 回答