Comment rechercher un élément dans un tableaustring à deux dim saisi au clavier

Manouche_1998
Messages postés
1
Date d'inscription
mardi 27 avril 2021
Statut
Membre
Dernière intervention
27 avril 2021
- Modifié le 27 avril 2021 à 23:17
 Manoux_1998 - 30 avril 2021 à 10:37
Bonsoir à tous , excusez-moi
j’aurais besoin d’aide sur une méthode(procédure)que j’ai utilisé pour rechercher un élément dans un tableau à deux dimensions saisi au clavier (string) pour chercher un élément j’ai utilisé cette condition après avoir mis mes deux boucles : if(nomrechercher.equals(tab[i][j]) )
Valbool = true .... mais il ne marche pas aurais vous une astuce pour m’aider ? J’attends avec impatience votre d’aide . Merci d’acance

2 réponses

KX
Messages postés
16540
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
22 mai 2022
124
28 avril 2021 à 08:06
Bonjour,

Pour t'aider à déboguer ton code il faudrait ton code complet, là tu nous montres une condition, a priori elle est bonne, donc le problème est ailleurs.
0
Je peux envoyer le code en photo? Ou il y’a une autre façon à faire ? Ou un copie coller?
Désolé de toute ces questions je suis un débutant sur les forums
0
@karamel
Messages postés
1807
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
5 mai 2022
144
28 avril 2021 à 10:37
un copie coller et pour poster ton code voir ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
Manoux_1998 > @karamel
Messages postés
1807
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
5 mai 2022

28 avril 2021 à 14:46
merci beaucoup
0
System.out.println("Veuillez entrer nombre eleve rechercher ");
		nom=sc.nextLine();
		
	for(i=0;i<n;i++) 
	{
			for(j=0;j<m;j++) 
			{
				if(nom==tab[i][j])
					verif = true;
			}
	
		
	}
		
	if(verif) 
		{
			System.out.println("l'eleve que vous rechercher "+nom+"existe dans le tableau");
		}
		else 
		{
			System.out.println("l'eleve que vous rechercher "+nom+"n'existe pas dans le tableau");
		}
	}

voici l'extraire de la fonction mais il renvoie toujours "il n'est pas dans le tableau.

En attente de votre aide

Mes salutations
0
KX
Messages postés
16540
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
22 mai 2022
124 > Manoux_1998
28 avril 2021 à 21:13
Dans ton code tu as mis
if(nom==tab[i][j])
ce qui est faux, en revanche dans ton premier message tu mettais
if(nomrechercher.equals(tab[i][j])
, et c'est bien ça qu'il faut faire.
0
Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
111
Modifié le 30 avril 2021 à 08:19
Salut,

Comme tu laisses trop de mystères (c'est quoi n et m? il valent quoi?)....
Ci-après, exemple de ton code avec les remarques ci-dessus (+ 2-3 changements):
private static boolean check(String array[][], String name)
{
  boolean check = false;
  /* Cherche le nom dans les tableaux, test en condition de boucle pour ne pas continuer si jamais le nom est trouvé (cela vaut pour les deux tableaux) */
  for(int i = 0; i < array.length && !check; ++i) 
    for(int j = 0; j < array[i].length && !check; ++j) 
      /* Comparaison de la chaine (trim pour éviter qu'un espace se glisse en début/fin de chaine). */
      /* ATTENTION: Ici c'est la chaine au sens strict qui est testée donc les majuscules/minuscules sont importantes */
      if(name.trim().equals(array[i][j]))
        check = true;
    return check;
}

public static void main(String []args){
  /* construction d'un tableau de noms, ici des entiers dans un tableau mais au fond c'est la meme chose */
  String tab[][] = new String[10][10];
  for(int i = 0; i < 10; ++i)
    for(int j = 0; j < 10; ++j)
      tab[i][j] = i + " " + j;

  /* flemme de faire une saisie clavier */
  String nom="5 6";
  /* Test et affichage */
  if(check(tab, nom)) 
    System.out.println("l'élève que vous rechercher '" + nom + "' existe dans le tableau");
  else 
    System.out.println("l'élève que vous rechercher '" + nom + "' n'existe pas dans le tableau");
        
  /* flemme de faire une saisie clavier */
  nom="5 10";
  /* Test et affichage */
  if(check(tab, nom)) 
    System.out.println("l'élève que vous rechercher '" + nom + "' existe dans le tableau");
  else 
    System.out.println("l'élève que vous rechercher '" + nom + "' n'existe pas dans le tableau");
}


Dev addict
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..." 
0
Merci je vais le tester
En pour ta question , le n c’est le nombre de ligne et m les colonnes.
Merci encore pour votre aide .
0