Как использовать целые числа в строковом массиве? - PullRequest
0 голосов
/ 05 мая 2020

Добрый день, как мне сделать так, чтобы это работало?

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent int1 = getIntent();
    final String category = int1.getStringExtra("category");
    final int level = int1.getIntExtra("level", 0);

    if (level == 0) {final String[] a = new String[]{"heart", "spade"};
    if (level == 1) {final String[] a = new String[]{"black", "blue"};

Я хочу использовать a в моем тексте редактирования с разными значениями в каждом level, но a не работает.

     if (answer1.getText().toString().contains(a))

Если я удалю if (level == 0), значение level перейдет в "heart", "spade". Я не могу использовать это, потому что я использую .contains в двух или более словах.

Я уже пробовал final String[] stringvar = new String[]{Arrays.toString(a), Arrays.toString(b)}; + .contains(stringvar[level]), но это бесполезно.

Так что мне нужно a содержит разные значения в каждом level. или для каждого строкового массива только 1 значение. например:

final String[] a = new String[]{"asd ", "qwe"} = 0

final String[] b = new String[]{"dsa ", "dsa} = 1

Спасибо. Скажите, пожалуйста, если мой вопрос трудно понять.

1 Ответ

0 голосов
/ 05 мая 2020

Итак, насколько я понимаю, вам нужен массив строк для каждого соответствующего уровня. Я рекомендую вам проверить тип данных Map. Вы создаете Map<Integer, String[]>, в котором хранится номер вашего уровня и массив слов, ответ на которые вы хотите проверить.

Пример:

Map<Integer,String[]> map = new HashMap<>();
map.put(1, {"asd ", "qwe"}); // Level 1
map.put(2, {"dsa", "dsa"}); // Level 2

Затем вы можете использовать map.get(n) для получить массив String для n-го уровня et c. в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...