Java 如何编写一个字典程序,其中有两个数组,一个带单词,另一个带含义

Java 如何编写一个字典程序,其中有两个数组,一个带单词,另一个带含义,java,arrays,Java,Arrays,然后这两个数组将被洗牌,需要输入来重新组织它们吗 关于这一点,我有两个主要问题,1如何“洗牌”数组,以及如果输入与数组中的值匹配,从而与第一个数组匹配,如何让输入识别第二个数组中的含义 编辑: 首先,程序应该初始化两个字符串数组,第一个包含10个单词,第二个包含这些单词的10个含义。单词和意思的顺序不应该是相同的,它们应该被洗牌 程序应以无序顺序显示两个数组 然后程序开始逐个询问用户第一个数组中每个单词的含义,用户应使用第二个数组中的短语进行回答 当用户回答某个短语时,应该调用OrderMean

然后这两个数组将被洗牌,需要输入来重新组织它们吗

关于这一点,我有两个主要问题,1如何“洗牌”数组,以及如果输入与数组中的值匹配,从而与第一个数组匹配,如何让输入识别第二个数组中的含义

编辑: 首先,程序应该初始化两个字符串数组,第一个包含10个单词,第二个包含这些单词的10个含义。单词和意思的顺序不应该是相同的,它们应该被洗牌

程序应以无序顺序显示两个数组

然后程序开始逐个询问用户第一个数组中每个单词的含义,用户应使用第二个数组中的短语进行回答

当用户回答某个短语时,应该调用OrderMeansions方法。这种方法重新排序的意义,因为他们应该与词的索引对齐。假设程序询问数组1中索引为2的“Brute”的含义,用户回答第二个数组中索引7中的“savage”,程序必须将“savage”与索引2处的单词交换,以便savage变为索引2处的单词

程序应重复此过程10次,以使用第一个数组中单词的正确含义组织第二个数组

组织好10个单词后,程序应显示数组中所有项目的“数组1中的单词”和“数组2中的单词”,每个项目在单独的一行上

import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;

public class dic {
static String[] words = { "Inform", "Despise", "Adoration", "Famished" };
static int l = words.length;
static String[] meanings = { "explain", "hate", "love", "hungry" };
static int len = meanings.length;
static String[] words2;


public static void main(String[] args) {
    randomize(l, words, len, meanings);

}

static void randomize(int l, String[] words2, int len, String[] meanings2) {
    Random r = new Random();
    for (int i = l - 1; i > 0; i--) {

        // Pick a random index from 0 to i
        int j = r.nextInt(i + 1);

        // Swap array[i] with the element at random index
        String temp = words2[i];
        words2[i] = words2[j];
        words2[j] = temp;
    for (int in = len - 1; in > 0; in--) { // For meanings array
        int jj = r.nextInt(in + 1);
        String temp2 = meanings2[in];
        meanings2[in] = meanings2[jj];
        meanings2[jj] = temp2;
    }
    }
    // Prints the random array
    System.out.println(Arrays.toString(words2));
    System.out.println(Arrays.toString(meanings2));
}
}洗牌

public void shuffle(String arr[])
{
    for(int i=0;i<arr.length;i++)
    {
        int r1 = (int) Math.random()*arr.length;
        int r2 = (int) Math.random()*arr.length;
        
        arr[r1] = arr[r1] + arr[r2];
        arr[r2] = arr[r1].substring(0, (arr[r1].length() - arr[r2].length()));
        arr[r1] = arr[r1].substring(arr[r2].length());
    
    }
    
}
public void shuffle(字符串arr[]
{

对于(int i=0;iFor shuffling a array,提问可能会有所帮助。有一个内置的方法可以做到这一点。诀窍是要认识到,你不会用两个数组编写一个程序,你应该为这对值创建一个类,然后用这些对象的1个数组编写一个程序。现在,当你洗牌数组时,这些值保持在一起。