ich würde gerne eine variable mit einem array vergleichen. dies hab ich mit der
Java:
xxx.equals(yyy)
- Methode gemacht. jedoch scheint das nicht so richtig zu funktionieren . zur information: es ist eine anmeldung die hier durchgeführt werden soll.
Java:
String panme=pass.getText();String banme=benutzer.getText();if(panme.equals(nutzername)&& banme.equals(passwor)){System.out.println("Sie wurden erfolgreich angemeldet");}else{System.out.println("Sie könnten nicht angemeldet werden");}
Java:
String p=passwort.getText();String n=benutzerr.getText();int x=1;//"SPIELERNUMMER"
nutzername[(x+1)]= n;
passwor[(x+1)]= p;System.out.println("Der alte array ist: "+nutzername[x]);System.out.println("Der neue array ist: "+nutzername[(x+1)]);System.out.println("Das alte passwort ist: "+passwor[x]);System.out.println("Das neue passwort ist: "+passwor[(x+1)]);
x=x+1;//NÄCHSTER SPIELER WIRD AUFGERUFEN
hier werden die arrays intialisiert:
Java:
int anzahl=100;//TEMPORÄRE MAXIMALE ANZAHL AN SPIELERNString[] nutzername=newString[anzahl];String[] passwor=newString[anzahl];
ich habs nicht so mit arrays aber vllt kann mir ja jemand sagen wo das problem liegt.
du kannst nicht einen array mit einem string vergleichen....
geht es dir darum, dass mind. ein element aus dem array gleich dem string ist ?
Java:
boolean found =false;for(String arrayString : derArray){if(arrayString.equals(myString)){System.out.println("found");
found =true;break;}}if(found){// was auch immer machen}
ja... genau darum gehts. ein array soll mit der variablen übereinstimmen
EDIT: das habe ich jetzt nicht ganz verstanden.... könntest du die variablenname durch meine ersetzen ? dann verstehe ich es vllt weil so....;(
EDIT2: was soll denn die variable derArray darstellen?
du hast einmal einen Kasten Bier mit verschiedenen Bierflaschen. Zudem hast du eine einzele Bierflasche. Möchtest du jetzt schauen, ob eine identische Flasche Bier im Kasten vorhanden ist??
oder möchtest du vllt das Array joinen und das dann mit deinem String vergleichen (dann würdest du quasi den ganzen Kasten Bier in eine riesen Flasche schütten und diese mit deiner einzelnen vergleichen )?
Dann hast du aber noch einen Denkfehler, weil sich somit jeder Benutzer mit irgendeinem Passwort anmelden darf. Wenn die Usernamen und Passworter über den Index gemappt sind, kannst du das dann so machen:
Das ist aber auch nicht wirklich schick. Ich würde dir eine Klasse User vorschlagen, die das Passwort und den Login eines Benutzers als Member hält. Darin überschreibst du dann die equals Methode und hälst eine ArrayList von Objekten dieser Klasse. Wenn sich der Benutzer anmeldet machst du aus den Login-Daten ein Benutzerobjekt und prüfst mit deineList.contains(deinBenutzerobjekt), ob die Logindaten gültig sind oder nicht.
edit: ok binarySearch ist quatsch in dem Fall
edit2: dann doch mit Hilfsmethode
Wenn wir uns vorstellen, wir haben eine Klasse [c]User[/c] mit den Attributen [c]name[/c] und [c]pass[/c], dann würd ich das [in deinem Fall] etwa so machen (ohne Beachtung von Hashing, Sicherheitsproblemen mit Strings, O(n) statt O(1) Laufzeit etc.):
Java:
publicbooleanisValidLogin(String userName,String pass){List<User> users = getUserFromIrgendwo....();// hol dir die Daten als Liste, Array oder was auch immerfor(User user : users){if(user.getName().equals(userName)){return user.getPass().equals(pass);// wenn das PW stimmt true, sonst false}}returnfalse;// keinen User mit dem Namen gefunden, also false}