29. december 2005 - 01:27
Der er
5 kommentarer og 1 løsning
Sammenligne 2 Strings, men melder altid false
Hvorfor virker dette styk kode ikke??? public boolean doesCharNameExist(String name) throws Exception { boolean result = false; try { _log.fine("Checking new name"); CharNames status = CheckLoginName.getInstance().getTemplate(name); _log.fine("found : " + status.get_name() + " Name : " + name); if (status.get_name() == name) { _log.fine("charname: "+ name + " already exists. creation failed."); result = true; } _log.fine("charname: "+ name + " already NOT exists."); } catch (Exception e) { // ignore problems } _log.fine("returning: "+ result); return result; } den skriver dette : Checking new name found : Stribes Name : Stribes charname: Stribes already NOT exists. returning: false de 2 names er den samme, men den melder false i steder for true som den burde.... Tak
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
29. december 2005 - 01:36
#1
if (status.get_name() == name) her skal du nok have fat i equals if (status.get_name().equals(name))
29. december 2005 - 01:50
#2
nice, den virkede dælme. smid et svar :)
29. december 2005 - 12:12
#3
forklaringen er at == tester om det er samme streng (2 pointere som peger på samme sted i memory) .equals tester om de indeholder de samme bogstaver char *s1; char *s2; s1==s2 versus strcmp(s1,s2)==0
29. december 2005 - 12:22
#4
if (status.get_name().equalsIgnoreCase(name)) hvis der ikke skal tages hensyn til store og små bogstaver
03. april 2006 - 15:51
#5
ingen svar efter måneder.... lukker
04. april 2006 - 01:15
#6
ranglen er vist ikke så aktiv lige for tiden
Kurser inden for grundlæggende programmering