Comment Comparer une Chaîne avec un Char
Les gars comment puis-je comparer une Chaîne avec un char ?
voilà mon code :
private String s;
private char c;
public K(String string, char cc){
setS(string);
setC(cc);
}
public void setS(String string){
this.s = string;
}
public void setC(char cc){
this.c = cc;
}
public boolean equals(K other){
return s.equals(c);
}
public boolean try(){
return s.equals(c);
}
si je l'appelle ma méthode "essayer" c'est toujours la me renvoie false, même si je l'ai mis
les deux s = "s" et "c = "s".
- Comparer
s.charAt(0)
etc
. - wouldnt être une fausse équivalence si la chaîne a plus de 1 char? Comment comparer s à la Chaîne.valueOf(c)
- Vous faites quelque chose de mal ici. Votre
equals
doit comparer l'état actuel deK
objet (this
), avec quelques autresK
objet qui sera passée (other
). Il ne faut pas comparers
àc
que ce n'est pas impliquer les autresK
(brisant ainsi leequals
contrat). Veuillez également éviter d'utiliser sens des noms, commeK
,c
,s
,cc
etc. - Vous ne pouvez pas utiliser
try
comme le nom de la méthode, cartry
est un mot réservé en Java. - merci pour les conseils, je vais réfléchir à cela la prochaine fois
Vous devez vous connecter pour publier un commentaire.
La première chose que je dirais à mon junior devs est de ne pas utiliser le mot "essayer" comme un nom de méthode, parce que faire est d'essayer un mot clé réservé en java.
Deuxièmement pense qu'il y a quelques choses que vous devez prendre en compte dans votre méthode.
Si vous comparez les choses de deux types différents, ils ne seront jamais les mêmes.
Une Chaîne peut être null.
Combien de temps la chaîne.
Le premier char.
Je voudrais écrire la méthode comme :
Utiliser char de comparaison (en supposant que s sera toujours de longueur 1):
Ou utiliser des chaînes de caractères comparaison:
Character#toString
suffirait pour votre deuxième exemple.