public String[] words={"cat", "dog", "rodeo", "bird", "lookers", "skid");
。
// Picks a random word from the dictionary, given the length of the word
public String pickWord(int size)
{
}
因此,如果用户输入4,则随机选择4个字母的单词数组中的单词。我已经从Random类创建了一个rand变量。那么如何选择数组中的元素,其字母数与用户输入的数字相同。
答案 0 :(得分:3)
以下是一个解决问题的示例方法。
String[] words;
public String pickWord(int size){
List ls = new ArrayList<String>();
for(int i=0; i>words.length;i++){
if(words[i].length() == size){
ls.add(words[i]);
}
}
Collections.shuffle(ls);
if(ls.isEmpty()){
return null;
}
return (String) ls.get(0);
}
答案 1 :(得分:1)
你可以非常简单地做一些像......这样的事情。
public String pickWord(int size) {
List<String> results = Arrays.stream(words).
filter((String t) -> t.length() == size).
collect(Collectors.toCollection(ArrayList::new));
Collections.shuffle(results);
return results.isEmpty() ? null : results.get(0);
}
类似......
System.out.println(pickWord(3));
System.out.println(pickWord(4));
System.out.println(pickWord(5));
System.out.println(pickWord(6));
可以打印类似......
cat
skid
rodeo
null
答案 2 :(得分:1)
从数组中获取长度等于输入的字符串,并将它们放入列表中。生成随机int到列表的大小,然后从列表中随机获取单词。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int maxLen;
ArrayList<String> list = new ArrayList();
String[] words = {"cat", "dog", "rodeo", "bird", "lookers", "skid"};
// Picks a random word from the dictionary, given the length of the word
System.out.println("Please input the max length of the word.");
maxLen = sc.nextInt();
for (String s : words) {
if (s.length() == maxLen) {
list.add(s);
}
}
System.out.println(pickWord(list));
}
static String pickWord(ArrayList<String> list) {
Random rd = new Random();
int randInt = rd.nextInt(list.size());
String picked = list.get(randInt);
return picked;
}
答案 3 :(得分:0)
计算具有该长度的单词数。如果为0,则返回null。如果为1,则返回单词。否则,使用Random.nextInt(count)
获取0
和count-1
之间的数字,然后找到该字词并将其返回。
答案 4 :(得分:0)
您可以根据用户输入生成一个包含n长字的新数组,并从新数组中提取随机索引,因为所有元素都符合指定的长度。