Java MVC随机字发生器

Java MVC随机字发生器,java,model-view-controller,Java,Model View Controller,因此,我正在创建一个MVC随机字生成器,用于提交用户输入并检索它。我在我的模型课上过得很艰难。我创建了一个字符串数组列表,用来存储用户输入,然后在用户按下“retrieve Word”按钮时检索它 公共类随机模型{ private ArrayList<String> randomWords; public RandomWordModel() { } public String putWord(String userWords) { randomWords.add(user

因此,我正在创建一个MVC随机字生成器,用于提交用户输入并检索它。我在我的模型课上过得很艰难。我创建了一个字符串数组列表,用来存储用户输入,然后在用户按下“retrieve Word”按钮时检索它

公共类随机模型{

private ArrayList<String> randomWords;

public RandomWordModel()
{

}
public String putWord(String userWords) {
    randomWords.add(userWords);
    return userWords;
}

public String getWord() {
    Collections.shuffle(randomWords);
    String userInput = randomWords.get(randomWords.size());
    return userInput;
}
私有数组列表随机字;
公共模型()
{
}
公共字符串putWord(字符串用户词){
添加(用户词);
返回用户词;
}
公共字符串getWord(){
集合。随机移动(随机词);
String userInput=randomWords.get(randomWords.size());
返回用户输入;
}

这就是我到目前为止所做的,但由于某些原因,它并没有真正起作用。我不确定我是否做错了,但如果有人能帮助我,那就太好了。

我不确定你为什么要为此创建一个完整的MVC模型

我个人会选择以下简单的方式:

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

public class test2{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        Random rand = new Random();

        System.out.print("Enter string > ");
        String input = sc.nextLine();

        String words[] = new String[input.length()];
        if(!input.isBlank())
            words = input.split(" ");

        System.out.println(words[rand.nextInt(words.length)]); 
    }
}
[下面编辑的代码]

根据您的要求,您可以很容易地将上述代码拆分为MVC。这只是重新排列代码

RandomWordView.java

import java.util.Scanner;

public class RandomWordView{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);

        System.out.print("Enter string > ");
        String input = sc.nextLine();

        RandomWordModel rwm;

        if(!input.isBlank()){
            rwm = new RandomWordModel(input.split(" "));
            System.out.println(RandomWordController.getRandomWord(rwm));
        }
    }
}
RandomWordModel.java

public class RandomWordModel{
    String wordArr[];

    public RandomWordModel(String wordArr[]){
        this.wordArr = wordArr;
    }

    public String[] getWordArr(){
        return this.wordArr;
    }
}
RandomWordController.java

import java.util.Random;

public class RandomWordController{
    public static String getRandomWord(RandomWordModel x){
        Random rand = new Random();
        String wordArr[] = x.getWordArr();
        return wordArr[rand.nextInt(wordArr.length)]; 
    }
}

由于您提供的功能要求非常简单,因此您可以看到,实际上不需要MVC框架。您的问题的模型只是一个字符串数组,控制器只需要一个随机字函数,这就是我最初建议简化的原因。希望这有助于您了解如何将其转换为d到MVC。首先,您忘记初始化arraylist。请尝试将arraylist初始化为:

List<String> randomWords= new ArrayList<String>();
List randomWords=new ArrayList();
工作代码段是:

private ArrayList<String> randomWords = new ArrayList<String>();;

public static void main(String args[]) {
    rep1 obj = new rep1();
    obj.putWord("user1");
    obj.putWord("user2");
    obj.putWord("user3");
    System.out.println(obj.randomWords);
    Object[] object = obj.getWord();
    System.out.println(Arrays.toString(object));
}

public void RandomWordModel() {

}

public String putWord(String userWords) {
    randomWords.add(userWords);
    return userWords;
}

public Object[] getWord() {
    Collections.shuffle(randomWords);

    return randomWords.toArray();
}
private ArrayList randomWords=new ArrayList();;
公共静态void main(字符串参数[]){
rep1 obj=新的rep1();
对象putWord(“用户1”);
对象putWord(“用户2”);
对象putWord(“用户3”);
System.out.println(obj.randomWords);
Object[]Object=obj.getWord();
System.out.println(Arrays.toString(object));
}
公共模型(){
}
公共字符串putWord(字符串用户词){
添加(用户词);
返回用户词;
}
公共对象[]getWord(){
集合。随机移动(随机词);
返回randomWords.toArray();
}

非常感谢,但这是一个类,我们应该为它创建一个MCV模型。否则,我会知道怎么做,但我很难使用MVC模型,也很难从中获取用户输入并显示出来。@juliamelo看到我修改过的答案了吗