在java数组中使用循环和随机字符

在java数组中使用循环和随机字符,java,arrays,loops,for-loop,random,Java,Arrays,Loops,For Loop,Random,我试图用Java制作一个12乘12的表,从给定的字母中选择一个随机字母,然后将其输出到表中,但是我无法实现这一点。请帮助…这是我的代码的样子: import java.util.Random; public class PlayingArea { public static void main(String[] args){ String letters= "EFGH"; int N = letters.length(); Random r = new Random

我试图用Java制作一个12乘12的表,从给定的字母中选择一个随机字母,然后将其输出到表中,但是我无法实现这一点。请帮助…这是我的代码的样子:

import java.util.Random;

public class PlayingArea {
public static void main(String[] args){
    String letters= "EFGH"; 
    int N = letters.length(); 
    Random r = new Random(); 
            char [][] letter = new char[12][12]; 
    for (int j = 0; j < letter.length; j++){
        for(int i=0; i < letter.length; i++) {
            letter[i][j] = letters.charAt(r.nextInt(N)) ; 
        }
    }       

    System.out.print(letter); 
}
import java.util.Random;
公共课播放区{
公共静态void main(字符串[]args){
字符串字母=“EFGH”;
int N=字母.length();
随机r=新随机();
字符[][]字母=新字符[12][12];
对于(int j=0;j

}您的问题似乎在这里:

letters.charAt(r.nextInt(N)) ;
您需要将nextInt()返回的数字限制为字符串的长度:

letters.charAt(r.nextInt(letters.length())) ;

你的问题似乎在这里:

letters.charAt(r.nextInt(N)) ;
您需要将nextInt()返回的数字限制为字符串的长度:

letters.charAt(r.nextInt(letters.length())) ;

你的问题似乎在这里:

letters.charAt(r.nextInt(N)) ;
您需要将nextInt()返回的数字限制为字符串的长度:

letters.charAt(r.nextInt(letters.length())) ;

你的问题似乎在这里:

letters.charAt(r.nextInt(N)) ;
您需要将nextInt()返回的数字限制为字符串的长度:

letters.charAt(r.nextInt(letters.length())) ;

算法在我看来很好,我想你可能遇到的问题是没有打印数组的正确字符串表示形式。您可以尝试将打印语句更改为以下内容

System.out.print(Arrays.deepToString(letter));
或者更手动一点(谢谢@Joop Eggen):

这个版本的优点是,每个子数组都在自己的行上,而不是所有的子数组都混在一行上,而且它看起来更像您希望的表

输出:

[G, E, H, H, H, E, H, F, F, E, H, G]
[E, H, H, H, F, G, E, F, H, F, G, H]
[H, F, G, F, F, F, H, G, G, H, H, G]
[E, E, H, E, F, H, E, F, G, F, F, F]
[F, H, F, E, F, H, G, E, H, F, E, G]
[E, H, F, H, H, H, H, E, G, F, F, E]
[H, G, G, G, H, F, G, E, G, H, E, G]
[H, H, E, E, E, E, G, G, H, H, F, F]
[H, F, F, G, G, G, H, H, H, F, E, H]
[H, H, F, E, G, G, H, E, E, E, F, H]
[H, H, G, F, G, F, G, E, H, F, H, F]
[E, F, E, F, F, F, H, E, G, E, F, E]

算法在我看来很好,我想你可能遇到的问题是没有打印数组的正确字符串表示形式。您可以尝试将打印语句更改为以下内容

System.out.print(Arrays.deepToString(letter));
或者更手动一点(谢谢@Joop Eggen):

这个版本的优点是,每个子数组都在自己的行上,而不是所有的子数组都混在一行上,而且它看起来更像您希望的表

输出:

[G, E, H, H, H, E, H, F, F, E, H, G]
[E, H, H, H, F, G, E, F, H, F, G, H]
[H, F, G, F, F, F, H, G, G, H, H, G]
[E, E, H, E, F, H, E, F, G, F, F, F]
[F, H, F, E, F, H, G, E, H, F, E, G]
[E, H, F, H, H, H, H, E, G, F, F, E]
[H, G, G, G, H, F, G, E, G, H, E, G]
[H, H, E, E, E, E, G, G, H, H, F, F]
[H, F, F, G, G, G, H, H, H, F, E, H]
[H, H, F, E, G, G, H, E, E, E, F, H]
[H, H, G, F, G, F, G, E, H, F, H, F]
[E, F, E, F, F, F, H, E, G, E, F, E]

算法在我看来很好,我想你可能遇到的问题是没有打印数组的正确字符串表示形式。您可以尝试将打印语句更改为以下内容

System.out.print(Arrays.deepToString(letter));
或者更手动一点(谢谢@Joop Eggen):

这个版本的优点是,每个子数组都在自己的行上,而不是所有的子数组都混在一行上,而且它看起来更像您希望的表

输出:

[G, E, H, H, H, E, H, F, F, E, H, G]
[E, H, H, H, F, G, E, F, H, F, G, H]
[H, F, G, F, F, F, H, G, G, H, H, G]
[E, E, H, E, F, H, E, F, G, F, F, F]
[F, H, F, E, F, H, G, E, H, F, E, G]
[E, H, F, H, H, H, H, E, G, F, F, E]
[H, G, G, G, H, F, G, E, G, H, E, G]
[H, H, E, E, E, E, G, G, H, H, F, F]
[H, F, F, G, G, G, H, H, H, F, E, H]
[H, H, F, E, G, G, H, E, E, E, F, H]
[H, H, G, F, G, F, G, E, H, F, H, F]
[E, F, E, F, F, F, H, E, G, E, F, E]

算法在我看来很好,我想你可能遇到的问题是没有打印数组的正确字符串表示形式。您可以尝试将打印语句更改为以下内容

System.out.print(Arrays.deepToString(letter));
或者更手动一点(谢谢@Joop Eggen):

这个版本的优点是,每个子数组都在自己的行上,而不是所有的子数组都混在一行上,而且它看起来更像您希望的表

输出:

[G, E, H, H, H, E, H, F, F, E, H, G]
[E, H, H, H, F, G, E, F, H, F, G, H]
[H, F, G, F, F, F, H, G, G, H, H, G]
[E, E, H, E, F, H, E, F, G, F, F, F]
[F, H, F, E, F, H, G, E, H, F, E, G]
[E, H, F, H, H, H, H, E, G, F, F, E]
[H, G, G, G, H, F, G, E, G, H, E, G]
[H, H, E, E, E, E, G, G, H, H, F, F]
[H, F, F, G, G, G, H, H, H, F, E, H]
[H, H, F, E, G, G, H, E, E, E, F, H]
[H, H, G, F, G, F, G, E, H, F, H, F]
[E, F, E, F, F, F, H, E, G, E, F, E]

但是我无法让它工作,它与预期的输出有什么不同?出于好奇,你在做什么游戏?这实际上是我自己想出来的一个游戏…不太难制作:)感谢Cruncher的帮助:尽管我无法让它工作,它与预期的输出有什么不同?出于好奇,你在做什么游戏?这实际上是我自己想出来的一个游戏…不太难做:)感谢Cruncher的帮助:尽管我无法让它工作,但它与预期的输出有什么不同?出于好奇,你在做什么游戏?这实际上是我自己想出来的一个游戏…不太难做:)感谢Cruncher的帮助:尽管我无法让它工作,但它与预期的输出有什么不同?出于好奇,你在做什么游戏?这实际上是我自己想出来的一个游戏…不太难做:)感谢Cruncher的帮助:D
int N=letters.length()无论如何,它应该是
字母.length()-1
<代码>字符(N)
将给出IOBException@Antoniossss不,不应该。nextInt返回一个介于0和n-1之间的随机整数。
int n=letters.length()无论如何,它应该是
字母.length()-1
<代码>字符(N)
将给出IOBException@Antoniossss不,不应该。nextInt返回一个介于0和n-1之间的随机整数。
int n=letters.length()无论如何,它应该是
字母.length()-1
<代码>字符(N)
将给出IOBException@Antoniossss不,不应该。nextInt返回一个介于0和n-1之间的随机整数。
int n=letters.length()无论如何,它应该是
字母.length()-1
<代码>字符(N)
将给出IOBException@Antoniossss不,不应该。nextInt为(char[]letterRow:letter)Systeem.out.println(Arrays.toString(letterRow))返回一个介于0和n-1之间的随机整数。
用于(char[]letterRow:letter)系统输出.println(Arrays.toString(letterRow))
用于(char[]letterRow:letter)系统输出.println(Arrays.toString(letterRow))
用于(char[]letterRow:letter)系统输出.println(Arrays.toString(letterRow))