Je cherche ici depuis un certain temps mais je n'ai pas pu trouver la réponse.
Je suis fondamentalement tenu d'utiliser un tableau pour cette mission du collège. Et puis je suis censé vérifier que l'entrée (qui est également une chaîne) correspond à tout ce qui est stocké dans le tableau String.
Je sais que l'on peut facilement comparer des chaînes en utilisant la méthode .equals (). Cependant, la même méthode ne fonctionne pas avec le tableau String.
J'ai créé l'exemple de code suivant dans le but de StackOverflow afin que vous puissiez l'utiliser pour me l'expliquer, si vous le souhaitez.
Qu'est-ce que je fais mal?
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%5s\n", 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!");
}
}
}
Je m'excuse si cela a déjà été demandé et je l'ai manqué, si c'est une double question, je vais le supprimer.
Je suppose que vous voulez vérifier si le tableau contient une certaine valeur, oui? Si tel est le cas, utilisez la méthode contains
.
if(Arrays.asList(codes).contains(userCode))
En ce moment, vous semblez dire "ce tableau de chaînes est-il égal à cette chaîne", ce qui bien sûr ne le serait jamais.
Peut-être devriez-vous penser à parcourir votre tableau de chaînes avec une boucle et à vérifier chacune pour voir si elles sont égales () à la chaîne entrée?
... ou ai-je mal compris votre question?
Parcourez le tableau codes
à l'aide d'une boucle, en demandant à chacun des éléments s'il s'agit de equals()
à usercode
. Si un élément est égal, vous pouvez arrêter et gérer ce cas. Si aucun des éléments n'est égal à usercode
, faites ce qui convient pour gérer ce cas. En pseudocode:
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"
Si je comprends bien votre question, il semble que vous souhaitiez savoir ce qui suit:
Comment vérifier si mon tableau
String
contientusercode
, leString
qui vient d'être entré?
Voir ici pour une question similaire. Il cite des solutions qui ont été signalées par des réponses précédentes. J'espère que ça aide.
import Java.util.Scanner;
import Java.util.*;
public class Main
{
public static void main (String[]args) throws Exception
{
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%5s\n", codes[0], codes[1], codes[2],
codes[3]);
System.out.printf ("Enter one of the above!\n");
String usercode = in.nextLine ();
for (int i = 0; i < codes.length; i++)
{
if (codes[i].equals (usercode))
{
System.out.printf ("What's the matter with you?\n");
}
else
{
System.out.printf ("Youda man!");
}
}
}
}
Au lieu d'utiliser un tableau, vous pouvez utiliser directement le ArrayList
et utiliser la méthode contains pour vérifier la valeur que vous avez transmise avec le ArrayList
.