03. april 2002 - 21:46Der er
9 kommentarer og 1 løsning
Jeg får en nullpointerexception efter 3 forsøg?
Jeg har skrevet dette program hvor jeg propper 3 brugere i en array og så er det meningen at man skal kunne skrive den rigtige bruger ind før man kan komme ind, men jeg får en nullpointerexception efter 3 forsøg?
import javagently.*; import java.io.*;
class Signup {
Signup()throws IOException {
Bruger password[] = new Bruger[10];
int index=0;
password[0] = new Bruger("Bo","Hansen"); password[1] = new Bruger("Maria","Olsen"); password[2] = new Bruger("Søren","Petersen");
Display d = new Display("Welcome to JAVA-Signup");
men siden løkken ikke incrementerer variablen index gør det vel ikke så meget :-))
Jeg kender ikke pakken javagently; men kunne det være at du får linieskift eller carriage-return med forenden af den indtastede streng når du bruger d.getString(...) ?
name = d.getString("Username"); kode = d.getString("Password"); // bruger har indtaste noget, nu skal vi // se om det står i listen index = 0;
if name.equals("jeg opgiver") { // du skal ALTID give folk en chance for at slippe væk brugerGavOp = true; } else { while( index<password.length && !password[index].brugerId.equals(name) ) { if ( password[index].brugerId.equals(name) && password[index].kode.equals(kode) ) { brugerOK = true; } index += 1; } } }
} public static void main(String[] aslan)throws IOException { new Signup(); } } class Bruger { String brugerId,kode;
Bruger(String b,String k) { brugerId = b; kode = k;
} public String toString() { return brugerId+" "+kode; } }
name = d.getString("Username"); kode = d.getString("Password");
} Prøv istedet med:
while(d.getString("Username") == null d.getString("Password") == null) { d.ready(" Tryk ready når de har indtastet n"); } name = d.getString("Username"); kode = d.getString("Password"); int result = checkBruger(); // gå videre på basis af result;
int checkBruger(){ for(index=0;!password[index].brugerId.equals(name);index++) { if(password[index].kode.equalskode)) // password ok; return 0; else // Password forkert return 1; } // brugernavn findes ikke return 2; }
String name; String kode; Bruger password[] = new Bruger[10];
int index=0; int result;
Signup()throws IOException {
password[0] = new Bruger("Bo","Hansen"); password[1] = new Bruger("Maria","Olsen"); password[2] = new Bruger("Søren","Petersen");
Display d = new Display("Welcome to JAVA-Signup");
d.prompt("Username","xxxx");
d.prompt("Password","xxxx");
d.ready(" Tryk ready når de har indtastet n");
do
{ name = d.getString("Username"); kode = d.getString("Password"); result = checkBruger(); if (result == 1){ d.ready(" Password forkert"); } if (result == 2){ d.ready(" Bruger ukendt"); }
}while (result != 0); }
int checkBruger(){ for(index=0; index < password.length ;index++) { if(password[index].kode.equals(kode)) // password ok; return 0; else // Password forkert return 1; } // brugernavn findes ikke return 2; }
public static void main(String[] aslan)throws IOException { new Signup(); } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.