如何使用随机字符串

时间:2017-06-02 17:02:55

标签: java arrays string random

正如标题所说我想用随机字符串填充二维数组,在这种情况下" _"和" W",我做了2d数组和随机字符串生成器,但我可以找到一个用来填充用生成的字符串创建的数组

import java.security.SecureRandom;

public class Array_Generator {
public static void main(String[] args) {

    int row = 5;
    int col = 5;
    int[][] grid = new int[row][col];
    String AB = "_W";
    SecureRandom rnd = new SecureRandom();
    for( int i = 0; i < grid.length; i++ ) {
        StringBuilder sb = new StringBuilder(row);
        sb.append( AB.charAt( rnd.nextInt(AB.length()) ) );
        sb.toString();


    }
System.out.println(sb);

如果我这样做,我会得到我想要的那一排,但是我找不到要去做下一行。

任何帮助都会被贬低。

3 个答案:

答案 0 :(得分:2)

gridint[][],因此无法保留String。更改类型,并在内部循环中分配随机字符串。

// int[][] grid = new int[row][col];
String[][] grid = new String[row][col];

...

// sb.toString();
grid[i][j] = sb.toString();

答案 1 :(得分:1)

以下是其中一种方式:

import java.security.SecureRandom;

public class Array_Generator {

    public static void main(String[] args) {

        int row = 5;
        int col = 5;
        String[][] grid = new String[row][col];
        String AB = "_W";
        SecureRandom rnd = new SecureRandom();
        for (int i = 0; i < grid.length; i++) {
            StringBuilder sb = new StringBuilder(row);
            for (int j = 0; j < grid[i].length; j++) {
                sb.append(AB.charAt(rnd.nextInt(AB.length())));
                sb.toString();
                grid[i][j] = sb.toString();
            }
        }

        for (int i = 0; i < grid.length; i++) {
            for (int j = 0; j < grid[i].length; j++) {
                System.out.print(""+grid[i][j]);
            }
            System.out.println();
        }

    }
}

<强>输出:

WW_W__W__WW__W_
__W_WW_WW__WW_W
__W_W__W_W_W_W_
WW_W_WW_W_W_W__
WW_W__W___W____

答案 2 :(得分:0)

您使用过二维(2D)数组。因此,您需要遍历两个数组。作为解决方案,您可以使用嵌套for循环。

  • 首先将2D数组类型更改为String。
  • 接下来将sb.toString();添加到该阵列。

然后:

for(int i = 0; i < grid.length; i++){
    for(int y = 0; y < grid[i].length; y++){
        System.out.println(i + " ");
        System.out.print(y + " ");
        //Or - System.out.print(grid[i][y] + " ");
    }
}

或者你可以使用for-each:

for(String[] i : grid){
    for(String y : i){
        System.out.print(y + " ");
    }
    System.out.println();
}