是否可以在Java中生成自定义字符

时间:2018-05-08 11:19:39

标签: java

我在编程方面很新,我想做一个简单的任务 是否可以从特定列表中生成Java中的自定义char?

例如,我希望程序只从这个字符A H F G D给我随机字符?

有可能吗?

2 个答案:

答案 0 :(得分:2)

有一种简单的方法可以从给定的chars集中获取伪随机元素。您可以使用Random.nextInt()(来自java.util包)。

您可以考虑创建一个char的数组,然后让这些方法为您选择一个元素。

以下是使用Random class:

的示例
char[] array = new char[] {'A', 'H', 'F', 'G', 'D', };
Random rand = new Random();
char chosenOne = array[rand.nextInt(array.length)]; // there is a pseudorandomly chosen index for array in range of 0 inclusive to 5 exclusive

编辑:根据你的评论(你说那里你想要随机选择不同长度的字符串集合中的元素(这样他们不再是char s(作为{ {1}}是一个单个字符 - ' char'或' 1',而不是' 0'),它们是10然后),实现我能想到的结果的最轻松的方法是在String中的这些值之间放置一个分隔符。这是一个可能的实现(我在代码的注释中做了一些额外的解释):

String

示例输出:

public static void main(String[] args) {
    String[] array = splitToSeparateElements("A,H,F,10,G,D,1,0,2000"); // store the result of calling splitToElements() with a
                                                            // given String as argument
    Random rand = new Random();
    for (int i = 0; i < 10; i++) { // this loop is just to print more results to console
        System.out.print(array[rand.nextInt(array.length)] + " "); // print pseudorandom element of array to the console
    }
}

public static String[] splitToSeparateElements(String inputString) {
    String[] splitted = inputString.split(","); // split String to separate Strings in the place of delimiter passed as argument to .split() method
    return splitted;
}

答案 1 :(得分:0)

是的,你可以!!

static char getRandomChar(String s){//pass string "AHFGD" here
    Random random = new Random();
    int index = random.nextInt(s.length());
    return s.charAt(index);

}