如何在 Java 中自动填充数组。每个字符的特定数量
How to populate automatically an array in Java. With specific number of each character
我想用一定数量的每个字符自动填充这个数组。
例如 @
有 30 个索引,%
有 20 个索引。 "empty" 数组将是 .
.
public class Main {
public static void main(String[] args) {
char grid[][] = new char[20][40];
Scanner move = new Scanner(System.in);
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++) {
grid [i][j] = '.';
System.out.print(grid[i][j]);
}
System.out.println();
}
}
}
我假设您想在整个数组中随机分布字符。我将继续假设值 30 和 20 是指导原则而非绝对值。
由于您有一个可以存储 800 个字符的 20x40 数组,其中应该有大约 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();
}
}
我想用一定数量的每个字符自动填充这个数组。
例如 @
有 30 个索引,%
有 20 个索引。 "empty" 数组将是 .
.
public class Main {
public static void main(String[] args) {
char grid[][] = new char[20][40];
Scanner move = new Scanner(System.in);
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++) {
grid [i][j] = '.';
System.out.print(grid[i][j]);
}
System.out.println();
}
}
}
我假设您想在整个数组中随机分布字符。我将继续假设值 30 和 20 是指导原则而非绝对值。
由于您有一个可以存储 800 个字符的 20x40 数组,其中应该有大约 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();
}
}