Gå til innhold

Sammenligne strenger


Anbefalte innlegg

Videoannonse
Annonse

private void trekk(){

String alletall="";

String nytt_tall="";

int tall;

for(int i=0;i<tblottorekke.length;i++){

tall=(int)(Math.random()*34)+1;

nytt_tall=Integer.toString(tall);

alletall=alletall+"*"+nytt_tall;

if(nytt_tall.indexOf(alletall)){

 

}

}

}

 

hvorfor får jeg feil der det er rødt?

prøver å lage et lottoprogram, og delen jeg sliter med nå er å gjøre slik at samme tall ikke blir trukket flere ganger. tenkte at jeg kunne lage en streng som innholder alle tallene som blir trukket eks. alletall=1*3*4*12*... osv... også sjekke om det nye tallet som blir trukket finnes i denne strengen, og hvis det finnes blir nytt tall trukket, hvis ikke legges tallet inn i tabellen... går det å gjøre det slik?

 

Hilsen grønn-javaprogramerer

Lenke til kommentar

Uttrykket:

nytt_tall.indexOf(alletall)

søker etter strengen alletall i strengen nytt_tall

 

Det du vil er

alletall.indexOf(nytt_tall)

 

Den feilen du egentlig tenker på, skyldes at indexOf(...) returnerer en int. Inne i if(...) en forventes en boolean. Du kan dermed gjøre noe som:

 

if(alletall.indexOf(nytt_tall) != -1){

//Denne koden blir utført dersom nytt_tall ikke finnes i alletall

}

 

Da gjenstår ett problem. Dersom nytt_tall="2" og alletall="1*23*30", vil koden bli utført (2 finnes i 23). Dette kan løses med kreativ bruk av stjernene dine. Det ideelle ville være en boolean array initialisert med alle elementer som false. Dermed kunne du si tallBrukt[tall] = true; og så senere sjekket if(tallBrukt[tall])...

 

Lykke til!

 

CPL

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...