begin process at 2010 02 10 04:25:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

JavaBeans

 > 

comparaison avec une chaine de caractère vide


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comparaison avec une chaine de caractère vide

mardi 3 août 2004 à 18:13:30 | comparaison avec une chaine de caractère vide

codefree

salut à tous j'ai une petite question de débutant

je ne dois rien afficher lorsque ma variable ne contient rien (en JSP)
ma variable se trouve dans une base de données

j'ai essayé :

String mavariable = "";
mavariable = resultSet.getString("mavariable");
if (mavariable != "") {
}

j'ai essayé

if (mavariable != null) {}

mais rien ne marche quelqu'un saurait m'éclairer, merci beaucoup
mardi 3 août 2004 à 18:49:48 | Re : comparaison avec une chaine de caractère vide

fmazoue

je crois que pour comparer le sSTring il faut utiliser .equals

sa doit etre un truc genre if(mavariable.equals("") == false)

essaye ca !
niarf
mardi 3 août 2004 à 20:00:43 | Re : comparaison avec une chaine de caractère vide

neodante

Administrateur CodeS-SourceS

Neodante

Juste un truc de prog pour fmazoue, lorsque l'on fait un test qui renvoie déjà un booléen, cela ne sert à rien de remettre une condition. Par conséquent pour optimiser ton code (et c'est vrai en C, ...) :

if (!maVar.equals("")) ... est plus rapide ... non ???

En plus à la place du equals(""), je mettrais plutot length() == 0 c'est plus rapide (regarde les codes sources de la classe String) ...

Maintenant pour codefree, lorsque tu fais :

maVar == null -> ce qui est bon pour n'importe quel objet, tu compare l'allocation mémoire de celui-ci, est-il alloué ou non ???

Egalement très important, si tu reprends ce que je viens de dire, on ne compare JAMAIS une chaine de caractères avec des opérateurs (seul l'opérateur + est surchargé -> concaténation) car sinon tu compare les adresses mémoires ... en gros tu veux savoir si 2 var représente le même objet en mémoire mais pour StringTOTO == "", cela te renverra toujours faux puisque l'expression "" te crée une nouvelle chaine en mémoire (vide !) ...

J'espère que tu as compris ce que je voulais dire !!! lol

Voilà pour l'éclaircissement !!! ;-)
@+

[Responsable www.neogamedev.com]
mardi 3 août 2004 à 22:48:45 | Re : comparaison avec une chaine de caractère vide

Dobel

je rajoute un petit truc à cette magnifique explication :
si maVariable est nulle, tu va avoir une exception inutile (puisque null est bien different de "")
donc tu peux tester
"".equals(maVariable)
qui marche même si maVariable est null

il faut savoir aussi que lorsque tu déclare tes chaines par
String s = "uneChaine"
String s2 = "uneChaine"

il se créé 1 et 1 seule String en mémoire et s et s2 pointent vers la même

par exemple :
String temp1 = "1";
System.out.println("1".equals(temp1));//true

String temp2 = "1";
System.out.println(temp1.equals(temp2));//true

String temp3 = "123456".substring(0, 1);
System.out.println(temp3 == "1");//false
System.out.println("1".equals(temp3));//true

String temp4 = ""+'1';
System.out.println(temp4 == "1");//true toujours!!

c'est bô !!

A+

Dobeliou
[Il ne faut jamais jouer à saute-mouton avec une licorne]
mardi 3 août 2004 à 22:51:21 | Re : comparaison avec une chaine de caractère vide

Dobel

ERRATUM !!!!!!!!!!!

euh pour 1 et 2, c'est pas du tout ce que je voulais mettre

String temp1 = "1";
System.out.println("1" == temp1);//true

String temp2 = "1";
System.out.println(temp1 == temp2);//true !


Dobeliou
[Il ne faut jamais jouer à saute-mouton avec une licorne]
mardi 3 août 2004 à 23:52:56 | Re : comparaison avec une chaine de caractère vide

neodante

Administrateur CodeS-SourceS

Neodante

Effectivement pour l'optimisation du "".equals() c'est la vraie bonne méthode du programmeur Java averti ... donc a utilisé de préférence .... on dit merci à Dobel pour ce complément !!! ;-)
@+

[Responsable www.neogamedev.com]
mercredi 4 août 2004 à 13:23:06 | Re : comparaison avec une chaine de caractère vide

codefree

Ok les gars vous êtes des starrrrrrrrrs ca marche du tonner merci beaucoup
mercredi 4 août 2004 à 20:30:51 | Re : comparaison avec une chaine de caractère vide

fmazoue

Oui euh bon d'accord, moi c vrai pour le moment temps que sa marche c déjà bien :-) ! pour les optimisation ce sera l'étape au dessus !
niarf


Cette discussion est classée dans : caractère, chaine, comparaison, vide, mavariable


Répondre à ce message

Sujets en rapport avec ce message

chaine de caractère [ par psychodingue ] kikou tout l'mondeJe suis en train de m'énerver face à une chaine de caractère qui me fait bien chier:j'ai ça: 1|Portal Pirata|66.111.54.190|422416,8| le point virgule dans une chaine de caractère. [ par juflata ] Je suis toujours sur mon probleme de point virgule je recapitule : je programme en Java, et j interroge une base de donnée Access. Dans mon fichier de chercher une chaine de caractère ds un fichier [ par fatiez ] bonjour,svp est-ce ke je peux avoir le nom d'une fonction en jsp qui permet de chercher une chaine de caractère ds un fichiermerci Extraction nombre d'un String [ par maxinfos ] Bonjour,voilà, j'ai un String contenant une chaine de caractère du style : "123.0 145.1 120.4 18 " etc ...j'aimerai Vérifier la présence d'un caractère dans une chaine [ par omcougar ] Bonjour,J'ai besoinrepérer si oui ou non un chaine contient un caractère précis ($)Je sais utiliser les pattern pour modifier des chaines dans un text debutant:lecture d'une chaine de caractère [ par bygui ] BonjourJe voudrais recuperer les mots separés par une tabulation contenus dans une chaine de caractère. Dessin String [ par Horfee ] J'aimerais savoir s'il y a un moyen simple (sans avoir a developper une classe DrawableString par exemple) qui permettrait de dessiner une chaine de c comparaison des chaines de caractéres [ par eclipse2007 ] bonsoir j'ai un probleme avec les chaine de caractére,j'essay de comparer deux chaine que j'affiche au préalable pour un petit test, a l'affichage les chaine sans caractère spéciaux [ par lex1111 ] Comment savoir si une String ne contient que des caractère alpha-numérique ?J'aimerais vérifier que ma String ne contient pas de caractères spéciaux d ASCII: Problème de détection de la touche entrée dans une chaine de caractère [ par cedzed ] Bonjour,J'ai un problème pour détecter dans une chaine de caractère la touche "Entrée", en effet je fais un fichier CSV et mon fichier est mal découpé


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales