OVH Cloud OVH Cloud

test d'une string vide

13 réponses
Avatar
yvon.thoravalNO
j'ai besoin de tester une string, savoir si elle est vide ou non.

j'ai essayé :
if ((url == null) || (url == "") || (url == " "))

tout se passe comme si url était ni "null", "", " "...

alors que lorsque je fais un out.println de cette chaine de caractères :

out.println("|" + url + "|");

j'obtiens bien "||" quand l'url est vide...

pour info j'obtiens cette string après un :
url = rs.getString("address_url");

(lecture d'une base MySQL)


mon petit bout de code :

if ((url == null) || (url == "") || (url == " "))
out.println("<td width='2%'>&nbsp;</td>");
else
out.println("<td width='2%'><a href='" + url + "'><img
src='img/world.gif' /></a></td>");

--
Yvon Thoraval

3 réponses

1 2
Avatar
Ulrich
En effet, j'ai désassemblé un programme avec mon test et le tiens et mon
code occupe un ligne en plus. cf : 4: ldc #2; //String. Car je dois créer
une chaine vide qui sert de réf. Donc, maintenant j'utiliserai le length().

Thx,
Ulrich.


"Lionel" a écrit dans le message de news:
3fd440de$0$19280$
Ulrich Vachon wrote:
Salut,

Le seul moyen efficace est de faire un trim() puis un
equalsIgnoreCase("").


perso je ferais plutot:
url.trim().length() ==0





Avatar
Kupee
Yvon Thoraval wrote:
j'ai besoin de tester une string, savoir si elle est vide ou non.

j'ai essayé :
if ((url == null) || (url == "") || (url == " "))

tout se passe comme si url était ni "null", "", " "...

alors que lorsque je fais un out.println de cette chaine de caractères :

out.println("|" + url + "|");

j'obtiens bien "||" quand l'url est vide...

pour info j'obtiens cette string après un :
url = rs.getString("address_url");

(lecture d'une base MySQL)


mon petit bout de code :

if ((url == null) || (url == "") || (url == " "))
out.println("<td width='2%'>&nbsp;</td>");
else
out.println("<td width='2%'><a href='" + url + "'><img
src='img/world.gif' /></a></td>");



Si la chaine ne peux pas contenir d'espaces, tu peux faire
if ("".equals(url)) ...
Le faire dans ce sens là peut éviter des null pointer exception.
Mais ca ne teste pas si url est juste un espace.
Dans ce cas tu sera obligé de tester toi meme si url est null ou non
avec un truc comme ca
if (url == null || "".equals(url.trim()) (si tu ne fais pas le test url
== null avant tu peux avoir un nullpointerexception.
Tu devrais pouvoir remplacer "".equals(url.trim()) par
url.trim().length() == 0 qui devrait etre légèrement plus efficace (mais
c'est négligeable je pense)

Avatar
yvon.thoravalNO
Kupee wrote:


Si la chaine ne peux pas contenir d'espaces, tu peux faire
if ("".equals(url)) ...
Le faire dans ce sens là peut éviter des null pointer exception.
Mais ca ne teste pas si url est juste un espace.
Dans ce cas tu sera obligé de tester toi meme si url est null ou non
avec un truc comme ca
if (url == null || "".equals(url.trim()) (si tu ne fais pas le test url
== null avant tu peux avoir un nullpointerexception.
Tu devrais pouvoir remplacer "".equals(url.trim()) par
url.trim().length() == 0 qui devrait etre légèrement plus efficace (mais
c'est négligeable je pense)


ouais merci pour l'advice à propos du null pointer exception...
--
Yvon Thoraval

1 2