我在编程方面很新,我想做一个简单的任务 是否可以从特定列表中生成Java中的自定义char?
例如,我希望程序只从这个字符A H F G D
给我随机字符?
有可能吗?
答案 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);
}