jbe Skrevet 12. september 2003 Del Skrevet 12. september 2003 Noen som vet hvilken metode som brukes for å sammenligne strenger? vil ha en metode som kan søke igjennom en streng og finne ut om f.eks String1="cde" finnes i String2="abcdefgh"... Lenke til kommentar
threiran Skrevet 12. september 2003 Del Skrevet 12. september 2003 Sjekk API'en, mer spesifikt: String.indexOf(String str) Returnerer den -1 finnes ikke strengen du søkte etter. Returneres 0 eller større er det der strengen du søkte etter starter. CPL Lenke til kommentar
jbe Skrevet 12. september 2003 Forfatter Del Skrevet 12. september 2003 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
threiran Skrevet 12. september 2003 Del Skrevet 12. september 2003 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå