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
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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