Java, как сравнить строки со строковыми массивами
Я искал здесь в течение некоторого времени, но не смог найти ответ на него.
Я в основном требуется использовать массив для этого задания из колледжа. И тогда я должен проверить, что вход (который также является строкой) соответствует тому, что хранится в строковом массиве.
Я знаю, что можно легко сравнивать строки с помощью .метод Equals (). Однако тот же метод не работает со строковым массивом.
Я создал следующий пример кода для StackOverflow, чтобы вы могли использовать его, чтобы объяснить его мне, если хотите.
что я делаю не так?
import java.util.Scanner;
class IdiocyCentral {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
/*Prints out the welcome message at the top of the screen*/
System.out.printf("%55s", "**WELCOME TO IDIOCY CENTRAL**n");
System.out.printf("%55s", "=================================n");
String [] codes = {"G22", "K13", "I30", "S20"};
System.out.printf("%5s%5s%5s%5sn", codes[0], codes[1], codes[2], codes[3]);
System.out.printf("Enter one of the above!n");
String usercode = in.nextLine();
if (codes.equals(usercode)) {
System.out.printf("What's the matter with you?n");
}
else {
System.out.printf("Youda man!");
}
}
}
Я прошу прощения, если это было задано раньше, и я просто пропустил его, если это двойной вопрос, я удалю его.
5 ответов
Я полагаю, вы хотите проверить, содержит ли массив определенное значение, да? Если это так, используйте contains
метод.
if(Arrays.asList(codes).contains(userCode))
прямо сейчас вы, кажется, говорите: "этот массив строк равен этой строке", что, конечно, никогда не будет.
Возможно, вам следует подумать об итерации через массив строк с циклом и проверке каждого, чтобы увидеть, равны ли они() с введенной строкой?
...или я неправильно понял ваш вопрос?
цикл codes
массив, использующий цикл, запрашивающий каждый из элементов, если это equals()
to usercode
. Если один элемент равен, вы можете остановить и обработать этот случай. Если ни один из элементов не равен usercode
, затем сделайте соответствующее для обработки этого случая. В псевдокоде:
found = false
foreach element in array:
if element.equals(usercode):
found = true
break
if found:
print "I found it!"
else:
print "I didn't find it"
Если я правильно понял ваш вопрос, похоже, вы хотите знать следующее:
Как проверить, если мой
String
массив содержитusercode
наString
Это было только что введено?
посмотреть здесь для аналогичного вопроса. Он цитирует решения, которые были указаны в предыдущих ответах. Надеюсь, это поможет.
вместо использования массива вы можете использовать ArrayList
непосредственно и может использовать содержит метод для проверки значения, которое u имеет проходит с ArrayList
.