webForumDet fria alternativet

Objekt-variabel strul

Java

1 svar · 428 visningar · startad av AG

Medlem sedan mars 20001 266 inlägg
Frågan#1

Har ett problem med en if-then-else sats.
Saken är den att den inte verkar vilja läsa
en viss variabel.
Så här ser koden ut:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
<%
String te = (String) "Ett värde";
String tes = (String) result.elementAt(1);
if (te==result.elementAt(1)){
%>
Finns redan
<p> </p>
<%
}
else {
%>
Finns EJ
<p> </p>
<%
}
%>

result.elementAt(1) innehåller värdet som är samma
som i te. Men if satsen skriver ändå ut svaret "Finns EJ"
Om jag däremot ändrar till:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
String tes = (String) result.elementAt(1);
if (tes==result.elementAt(1)){
%>
'tes istället för te

Så skriver den ut finns redan.
Så frågan till eder är som följer, var ligger felet?

Andreas

Medlem sedan apr. 20007 588 inlägg
#2

När du skall jämföra strängar måste du använda String-objektets metod equals() eftersom en vanlig jämförelse med == endast jämför om det är samma objekt vilket det inte nödvändigtvis måste vara även om strängarna innehåller samma text (det kan dock vara samma objekt ibland men det är svårt att veta på förhand och beror på hur Javas stränghantering är uppbyggd)

Alltså, ändra till detta:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
<%
String te = (String) "Ett värde";
String tes = (String) result.elementAt(1);
if (te.equals(result.elementAt(1))){
%>
Finns redan
<p> </p>
<%
}
else {
%>
Finns EJ
<p> </p>
<%
}
%>

------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny

[Redigerat av sgtpepper den 10 mar 2001]

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)