La methode equals ne veut pas fonctionner

supcomingénieur Messages postés 87 Statut Membre -  
supcomingénieur Messages postés 87 Statut Membre -
Bonjour,

je veux comparer deux chaines de caratère:

- la première se trouve dans une base de donnée
- la deuxième saisi a partir du clavier

quand j'affiche le contenu de ces deux chaine c clair qu'elles sont parfaitement egales

mais quand je tappe cette instruction if(chaine1.equals(chaine2)) elle n'est pas verifiée

je ne comprend pas d'ou vien le problème

voila la classe si ca peut vous aider a comprendre

package stage;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.sampled.AudioFormat.Encoding;
import javax.swing.*;

public class OtpClient extends JFrame implements ActionListener{

JFrame client;
JPanel p4;
JPanel p5;
JLabel mon_image;
JLabel l4;
JButton b2;
JPasswordField t4;

String secret;
boolean correspond=false;
public OtpClient()
{
//super();
client=new JFrame("Client OTP");
client.setSize(400,400);
p4=new JPanel();
p5=new JPanel();
l4=new JLabel("Enter OTP");
b2=new JButton("connect");
b2.addActionListener(this);
t4=new JPasswordField();
t4.addActionListener(this);
t4= new JPasswordField(SwingConstants.CENTER);
t4.setPreferredSize(new Dimension(200,30));
mon_image = new JLabel(new ImageIcon("logo.jpg"));
p4.setLayout(new FlowLayout());
p4.add(l4);
p4.add(t4);
p5.setLayout(new FlowLayout());
p5.add(b2);
p5.add(mon_image);
client.setLayout(new GridLayout(3,1));
client.add(p4);
client.add(p5);
client.setVisible(true);
}

public boolean testOtp(String otp_saisi)
{

String url = "jdbc:mysql://localhost:3306/OtpAuthentication";
String username = "root";
String password = "phetaidrai";

try{
//connexion base
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connexion=DriverManager.getConnection(url,username,password);
Statement instruction = connexion.createStatement();
ResultSet resultat = instruction.executeQuery("SELECT * FROM khadija");

while (resultat.next() && (correspond==false))
{
System.out.println(otp_saisi);
System.out.println(resultat.getString(2));
Statement ins = connexion.createStatement();
boolean test=otp_saisi.equals(resultat.getString(2));
System.out.println(test);
if (otp_saisi.equals(resultat.getString(2))) //voila l'instruction qui ne marche pas

{

System.out.println("accès permi");
String efface="delete from khadija where (numero='"+resultat.getInt(1) +"')";
ins.executeUpdate(efface);
correspond=true;

}

else
{
System.out.println("accès refuse");
correspond=false;

}
}

}catch (Exception e)
{
System.out.println("echec pilote : "+e);
}
return(correspond);
}

@Override

public void actionPerformed(ActionEvent e)
{ char[] mon_otp;
boolean verifier;

if (e.getSource().equals(b2))

{
mon_otp=t4.getPassword();
secret=new String(mon_otp);
verifier=testOtp(secret);
if (verifier==true)
{
JOptionPane op=new JOptionPane();
op.showMessageDialog(null, "accès permi", "info", JOptionPane.INFORMATION_MESSAGE);
correspond=false;
}
else if (verifier==false)
{
JOptionPane op=new JOptionPane();
op.showMessageDialog(null, "veuillez resaisir votre OTP", "Erreur", JOptionPane.ERROR_MESSAGE);
}
else
{
if (secret.isEmpty())

{
JOptionPane op=new JOptionPane();
op.showMessageDialog(null, "veuillez saisir le champs OTP", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
}

}

public static void main(String[] args) {
OtpClient o =new OtpClient();
//o.testOtp("16b992b2f9ce2ef9ee922344e1f7f61c");

}
}

merci de bien vouloir m'aider ca fait des heures que je suis bloquée.

2 réponses

supcomingénieur Messages postés 87 Statut Membre 1
 
SVP c très très urgent aidez moi !!!!!!!!!!!!!!
0
supcomingénieur Messages postés 87 Statut Membre 1
 
personne ne veut m'aider?
0