Строка с произвольным доступом - PullRequest
0 голосов
/ 31 августа 2018

Я хочу сравнить (.equals) строки с пользовательским вводом, как тест. Теперь у меня есть несколько вопросов:

1 Как я могу получить произвольный доступ к моему массиву строк answerlist? (Как разные (порядок) вопросы каждый раз)

public String[] questionList = {"question1", "question2", "question3"};
// answer1 is the correct answer to question1 etc. 
public String[] answerList = {"answer1", "answer2", "answer3};
random = new Random();            
answer = answerList[random.nextInt(answerList.length)];

2 Мне показалось, что вы можете использовать список (массив) вместо массива String, который я сейчас использую. Если это правда, не могли бы вы включить объяснение, как это сделать. И как получить доступ наугад.

3 А как сопоставить ответ с произвольным доступом с вопросом, отображаемым для пользователя? Я читал что-то об использовании классов для этого?

Заранее спасибо!

РЕДАКТИРОВАТЬ: Я просто думал о создании массива для каждого вопроса и ответа, а затем доступ к ним тем или иным способом?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Как я могу получить произвольный доступ к моему списку ответов для строкового массива (как каждый раз разные вопросы).

Поскольку вы хотите изменить вопросы, такие как викторина / случайно, предлагается, чтобы вы сопоставили свой вопрос и ответили вместе. Перемешивание списка вопросов и списка ответов не является предпочтительным и не имеет решения.

Мне показалось, что вы можете использовать список (массив) вместо массива String, который я сейчас использую. Если это правда, не могли бы вы включить объяснение, как это сделать. И как получить доступ наугад.

А как сопоставить ответ с произвольным доступом с вопросом, отображаемым для пользователя? Я читал что-то об использовании классов для этого?

Используйте приведенный ниже пример Hashmap в Java.

public class QuestionAnswers {
  public static void main(String[] args) {
    HashMap<String, String> questionSets = new HashMap<String, String>();
    questionSets.put("Question1", "Answer1");
    questionSets.put("Question2", "Answer2");
    questionSets.put("Question3", "Answer3");
    questionSets.put("Question4", "Answer4");
    questionSets.put("Question5", "Answer5");

    List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(questionSets.entrySet());

    System.out.println("************ Questions ************");
    Collections.shuffle(list);
    for (Map.Entry<String, String> entry : list) {
        System.out.println(entry.getKey());
        // Here entry.getKey() is Question and if user enters the correct answer 
        // match that answer with like -> "user_answer".equals(entry.getValue());
    }
  }
}
0 голосов
/ 31 августа 2018

Есть несколько способов приблизиться к созданию списка ваших вопросов и ответов.

1. Использование класса для хранения вопроса и связанного с ним ответа

Вы можете рассмотреть список объектов, каждый из которых содержит вопрос и связанный с ним ответ.

class QuestionAnswerPair
{
    final String question;
    final String answer;

    public QuestionAnswerPair(@NonNull String question, @NonNull String answer)
    {
        this.question = question;
        this.answer = answer;
    }
}

Затем, чтобы добавить свои вопросы / ответы в список, вы должны сделать что-то вроде этого:

final List<QuestionAnswerPair> questionsAndAnswers = new ArrayList<>();
QuestionAnswerPair one = new QuestionAnswerPair("my question", "my answer");
questionsAndAnswers.add(one);
// keep creating and adding new questions and answers as needed

2. Использование android.util.Pair

Другим вариантом является Класс утилит Pair в Android:

final List<Pair<String, String>> questionsAndAnswers = new ArrayList<>();
questionsAndAnswers.add(Pair.create("question1", "answer1"));
//continue adding as needed

С этого момента, чтобы перемешать свой список, вы можете посмотреть примеры алгоритмов перемешивания в Google, выполнив поиск по списку «Перемешать в Java» или что-то в этом роде. Один такой пример можно найти здесь: http://www.vogella.com/tutorials/JavaAlgorithmsShuffle/article.html

...