Java MVC随机字发生器
因此,我正在创建一个MVC随机字生成器,用于提交用户输入并检索它。我在我的模型课上过得很艰难。我创建了一个字符串数组列表,用来存储用户输入,然后在用户按下“retrieve Word”按钮时检索它 公共类随机模型{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
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看到我修改过的答案了吗