如何在Java中自动填充数组。具有每个字符的特定编号

如何在Java中自动填充数组。具有每个字符的特定编号,java,arrays,populate,Java,Arrays,Populate,我想用每个字符的特定数量自动填充这个数组 例如,30个索引具有@,20个索引具有%。“空”数组将是 公共类主{ 公共静态void main(字符串[]args){ 字符网格[][]=新字符[20][40]; 扫描仪移动=新扫描仪(System.in); System.out.println(“让我们开始玩:”); System.out.println(“-----------------------------------------------------------------------”

我想用每个字符的特定数量自动填充这个数组

例如,30个索引具有
@
,20个索引具有
%
。“空”数组将是

公共类主{
公共静态void main(字符串[]args){
字符网格[][]=新字符[20][40];
扫描仪移动=新扫描仪(System.in);
System.out.println(“让我们开始玩:”);
System.out.println(“-----------------------------------------------------------------------”;
对于(int i=0;i
,2.5%的
'%
和3.75%的
'@'
。使用
java.util.random
类似的东西可能是一个关键点:

import java.util.Random;
....


public static void main(String[] args) {
    char grid[][] = new char[20][40];
    Scanner move = new Scanner(System.in);
    Random rand = new Random();
    System.out.println("Let's start playing:");
    System.out.println("---------------------------------------------------------------");
    for (int i = 0; i < grid.length; i++) {
        for (int j = 0; j < grid[i].length; j++) {
            double r = rand.nextDouble();
            grid [i][j] = r < 0.025 ? '%' : r < 0.0625 ? '@' : '.';
            System.out.print(grid[i][j]);
        }
        System.out.println();
    }
}
import java.util.Random;
....
公共静态void main(字符串[]args){
字符网格[][]=新字符[20][40];
扫描仪移动=新扫描仪(System.in);
Random rand=新的Random();
System.out.println(“让我们开始玩:”);
System.out.println(“-----------------------------------------------------------------------”;
对于(int i=0;i
我假设您希望在数组中随机分配字符。我将继续假设值30和20是指导原则,而不是绝对值。 由于您有一个20x40数组,它可以存储800个字符,其中大约有750个点,其他50个字符,因此分布将是93.75%的
'.
,2.5%的
'%
和3.75%的
'@'
。使用
java.util.random
类似的东西可能是一个关键点:

import java.util.Random;
....


public static void main(String[] args) {
    char grid[][] = new char[20][40];
    Scanner move = new Scanner(System.in);
    Random rand = new Random();
    System.out.println("Let's start playing:");
    System.out.println("---------------------------------------------------------------");
    for (int i = 0; i < grid.length; i++) {
        for (int j = 0; j < grid[i].length; j++) {
            double r = rand.nextDouble();
            grid [i][j] = r < 0.025 ? '%' : r < 0.0625 ? '@' : '.';
            System.out.print(grid[i][j]);
        }
        System.out.println();
    }
}
import java.util.Random;
....
公共静态void main(字符串[]args){
字符网格[][]=新字符[20][40];
扫描仪移动=新扫描仪(System.in);
Random rand=新的Random();
System.out.println(“让我们开始玩:”);
System.out.println(“-----------------------------------------------------------------------”;
对于(int i=0;i
空索引将为“”。不是空数组。对不起,你的问题不清楚。它是一个二维阵列。30个索引和20个索引是什么意思?任务要求是什么?在这个问题中,它听起来像是在填充一个数组,而代码有一个2D数组,那么它需要以什么方式填充呢?
IntStream.range(0,grid.length).forEach(i->Arrays.fill(grid[i],'))它是一个二维数组。所以现在[0][0]是“.”。[0][1]是“.”等等。我想用%填充20个字段。例如,30个带*的字段。[0][4]是“%”。以此类推……空索引将是“”。不是空数组。对不起,你的问题不清楚。它是一个二维阵列。30个索引和20个索引是什么意思?任务要求是什么?在这个问题中,它听起来像是在填充一个数组,而代码有一个2D数组,那么它需要以什么方式填充呢?
IntStream.range(0,grid.length).forEach(i->Arrays.fill(grid[i],'))它是一个二维数组。所以现在[0][0]是“.”。[0][1]是“.”等等。我想用%填充20个字段。例如,30个带*的字段。[0][4]是“%”。等等