Problème Débutant Java

Résolu/Fermé
Akwaa_ - Modifié le 8 mai 2020 à 15:54
 Akwaa_ - 8 mai 2020 à 16:07
Bonjour,
je commence juste à programmer sur java et je rencontre déjà quelques problèmes : je vous met mon script :

package fr.myprogramme;

import java.util.Scanner;

public class Main {

   public static void main(String[] args) {
    // TODO Auto-generated method stub
  
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   String indentifiantx = "Pseudo-MotDePasse";
  
          Scanner sc = new Scanner(System.in);
   System.out.println("Saisissez votre identifiant sous la forme Pseudo-MotDePasse : ");
   String identifiantx = sc.nextLine();
   
   String[] identifiant = identifiantx.split("-");
   
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   
   if(identifiant.length == 2) {
     System.out.println("Pseudo : "+identifiant[0]);
     System.out.println("MotDePasse : "+identifiant[1]); 
     if(identifiant[0] == "v" && identifiant[1] == "g") {
    System.out.println("Accès Accepté !"); }
       else {
        System.out.println("Accès Refusé !"); } }
     else {
       System.out.println("Veuillez respecter la consigne !"); }
   
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

La première partie fonctionne mais au moment des conditions if else, je rencontre quelques problèmes : la première condition if else avec identifiant.length et "Veuillez respecter la consigne !" marche très biens mais après, que j'écrive a-b ou bien v-g comme demandé, sa me met toujours accès refusé ! Merci de m'aider je débute :) !
Configuration: Windows / Chrome 81.0.4044.138
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
8 mai 2020 à 15:59
Bonjour,

Pour les objets, l'opérateur
==
compare les références des objets, pas leurs valeurs.

Donc
identifiant[0] == "v" && identifiant[1] == "g"
sera toujours faux.

Il faut utiliser la méthode equals à la place :
if (identifiant[0].equals("v") && identifiant[1].equals("g")) {
1
Merci beaucoup !
0