Hvordan å generere en tilfeldig alfanumerisk streng

De fleste programmeringsspråk har et tilfeldig tall generator. I Visual Studio språk (Visual Basic, C #, og klarte C ++), er dette System.Random klassen. Som de fleste slike generatorer, genererer denne klassen automatisk sin første tilfeldige tall ved hjelp av en funksjon basert på gjeldende tidspunkt. Påfølgende tallene er produsert ved hjelp av en matematisk funksjon som er kjent for å lage statistisk gyldige tilfeldige tall. Programmerere bruker tilfeldige tall for å lage sikkerhetskoder, generere krypteringsnøkler, drive business simuleringer og introdusere tilfeldige hendelser i videospill.

Bruksanvisning

1 Opprett en ny konsoll applikasjon. Åpne Visual Basic Express eller Visual Studio. Klikk på "File", "New Project". Når det nye prosjektet skjemaet vises, velg "Visual Basic" og deretter "Windows" fra trevisningen, velge "Console Application" -ikonet. Klikk på "OK". Etter en kort stund, vil koden mal for en ny konsoll applikasjon vises.

2 Lag en funksjon som heter NewString umiddelbart etter Module erklæring som følger:

modul module1

Function NewString(ByVal len As Integer) As String

Den NewString funksjonen returnerer en sekvens av tilfeldige bokstaver og tall. Verdien sendes til funksjonen bestemmer lengden av strengen som returneres.

3 Erklærer noen minnevariabler som brukes i funksjonen.

Dim tegn As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

Dim randomizer As New Random

Dim s As String = ""

Dim i As Integer

De variable tegn inneholder alle mulige bokstaver og tall som kan vises i den nye strengen. Det er flere måter som tegn kan genereres, men dette er så enkel og grei som noen av alternativene.

Tilfeldig er en ny forekomst av tilfeldige tall klassen. Fordi det er en klasse, må den nye operatøren brukes her for å laste sine felt og egenskaper inn i minnet og automatisk ringe sin konstruktør til frø tilfeldig tall generator.

De variable s vil holde den nye strengen som det er bygget, og jeg er en indeks inn i tegn array.

4 Lag løkken som genererer tilfeldig rekkefølge.

While s.Length < len

i = randomizer.Next (chars.Length)

s & = tegn (i)

slutt Mens

På den første gjentagelse av sløyfen, blir I det neste tilfeldig tall fra randomiseringsmiddel. Siden lengden av tegn strengen er 36, vil nummeret returnert variere fra 0 til 35. Den andre linje innenfor sløyfen får et enkelt tegn ved hjelp av indeksen I fra tegn strengen så legger den inn i s. Denne sløyfe gjentas inntil strengen s inneholder det ønskede antall tilfeldige tegn.

5 Returner streng s deretter avslutte funksjonen.

Return s

End Function

6 Legg kode i den viktigste metoden for å teste funksjonen.

Sub Main()

Console.WriteLine (NewString (10))

End Sub

End Module

Når programmet kjøres, er en 10-tegnstreng skrevet til konsollen. Klikk F5 for å kjøre programmet

Hint

  • For å øke sannsynligheten for at et tall vises, gjentar tallene 0-9 på slutten av tegn strengen.