Jak se vypořádat s náhodným číslem a generátorem řetězců v Javě?

Tento článek vám představí generátor náhodných čísel a řetězců v Javě a naváže na něj programovou ukázkou.

Tento článek vás seznámí Náhodné číslo A generátor řetězců v Javě a navázat na něj programovou ukázkou. V tomto článku se budeme zabývat následujícími ukazateli,

Existují tři metody pro generování náhodných čísel v Javě pomocí vestavěných metod a tříd.





  • Java.util.Random třída
  • Matematická metoda
  • Třída ThreadLocalRandom

Pojďme tedy začít článek o náhodném čísle a generátoru řetězců v Javě,

Jáva .Užitečný. Náhodný

Nejprve musíme v programu vytvořit instanci této třídy a poté pomocí instance, kterou jsme vytvořili, vyvolat různé vestavěné metody, jako je nextInt (), nextDouble () atd.
Náhodná čísla typu celá čísla, float, double, long, booleans lze vytvořit pomocí této třídy.
Argumenty lze předat metodám pro definování horní meze, do které se má číslo generovat. Například nextInt (4) vygeneruje čísla v rozsahu 0 až 3 (obě včetně).



Příklad 1:

// Program Java pro zobrazení generování náhodných čísel // pomocí java.util.Random import java.util.Random veřejná třída Main {public static void main (String args []) {// vytvoření instance náhodné třídy Random rand = new Random () // Generování náhodných celých čísel v rozsahu 0 až 99 int int1 = rand.nextInt (100) int int2 = rand.nextInt (100) // Tisk náhodných celých čísel System.out.println ('Random Integers:>' + int1) System.out.println ('Náhodná celá čísla:>' + int2) // Generování náhodných zdvojnásobení double dub1 = rand.nextDouble () double dub2 = rand.nextDouble () // Tisk náhodných zdvojnásobení System.out.println (' Náhodné zdvojnásobení:> '+ dub1) System.out.println (' Náhodné zdvojnásobení:> '+ dub2)}}

Výstup:

Generátor náhodných čísel a řetězců v jazyce Java - Edureka



Příklad:

// Program Java pro zobrazení generování náhodných čísel // pomocí java.util.Random import java.util.Random veřejná třída Main {public static void main (String args []) {// vytvoření instance třídy Random Random rand = new Random () // Generování náhodných celých čísel v rozsahu 0 až 9 int int1 = rand.nextInt (10) // Tisk náhodného celého čísla System.out.println ('Random Integer:>' + int1)}}

Výstup:

Pokračujeme v tomto článku

Matematika . náhodný ( )

Třída pojmenovaná jako Math zahrnuje různé metody provádění řady různých numerických operací, které zahrnují logaritmy, řešení umocňování atd. Mezi těmito operacemi je random (), který se používá ke generování náhodných čísel zdvojnásobení typu v rozsahu 0,0 až 1,0 . Tato metoda vrací dvojitou hodnotu, která je buď větší než nebo rovna 0,0 a menší nebo rovna 1,0 spolu s kladným znaménkem. Hodnoty, které vrací funkce random (), jsou náhodně vybrány strojem.

Příklad 1:

// Program Java pro demonstraci fungování // Math.random () ke generování náhodných čísel import java.util. * Public class Main {public static void main (String args []) {// Generování náhodné hodnoty datového typu double System.out.println ('Náhodná hodnota:' + Math.random ())}}

Výstup:

Chcete-li zkontrolovat náhodnost, spusťte program ještě jednou.

jak třídit pole c ++
// Program Java pro demonstraci fungování // Math.random () ke generování náhodných čísel import java.util. * Public class Main {public static void main (String args []) {// Generování náhodné hodnoty datového typu double System.out.println ('Another Random value:' + Math.random ())}}

Výstup:

Pokračování tohoto článku o náhodném čísle a generátoru řetězců v Javě

Java.util.concurrent.ThreadLocalRandom třída

Tato třída byla zavedena v java 1.7 pro generování náhodných čísel celých čísel datového typu, čtyřhry, booleovské hodnoty atd.
Příklad 1:

// Program Java pro demonstraci fungování ThreadLocalRandom // pro generování náhodných čísel. import java.util.concurrent.ThreadLocalRandom veřejná třída Main {public static void main (String args []) {// Generování náhodných celých čísel v rozsahu 0 až 99 int int2 = ThreadLocalRandom.current (). nextInt () // Tisk náhodného celého čísla System.out.println ('Random Integers:' + int2) // Generování náhodných zdvojnásobení double dub1 = ThreadLocalRandom.current (). NextDouble () double dub2 = ThreadLocalRandom.current (). NextDouble () // Tisk náhodných zdvojnásobení systému. out.println ('Random Doubles:' + dub1) System.out.println ('Random Doubles:' + dub2)}}

Výstup:

Příklad 2:

// Program Java pro demonstraci fungování ThreadLocalRandom // pro generování náhodných čísel. import java.util.concurrent.ThreadLocalRandom veřejná třída Main {public static void main (String args []) {// Generování náhodných booleans boolean bool1 = ThreadLocalRandom.current (). nextBoolean () boolean bool2 = ThreadLocalRandom.current (). nextBoolean () // Tisk náhodných Booleans System.out.println ('Random Booleans:' + bool1) System.out.println ('Random Booleans:' + bool2)}}

Výstup:

Pokračování tohoto článku o náhodném čísle a generátoru řetězců v Javě

Generování náhodných řetězců v Javě

Můžeme generovat náhodný alfanumerický řetězec pomocí následujících metod:

Pokračování tohoto článku o náhodném čísle a generátoru řetězců v Javě

Používání matematiky . náhodný ( )

Níže je uveden příklad pro lepší pochopení konceptu.

// Program Java generující náhodný řetězec AlphaNumeric // pomocí metody Math.random () veřejná třída Main {// definovat funkci pro generování náhodného řetězce délky n statický řetězec String RequiredString (int n) {// vybral znak náhodně z tohoto řetězce String AlphaNumericString = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + '0123456789' + 'abcdefghijklmnopqrstuvxyz' // vytvořit velikost StringBuffer AlphaNumericString StringBuilder s = nový StringBuilder y = nový StringBuilder

Výstup:

Pokračování tohoto článku o náhodném čísle a generátoru řetězců v Javě

Používání CharSet

Zde musíme použít jiný balíček, tj. Balíček java.nio.charset.
Níže je uveden ilustrovaný příklad.

// Program Java vygeneruje náhodný řetězec AlphaNumeric // pomocí CharSet import java.util. * Import java.nio.charset. * Class Main {static String RequiredString (int n) {// délka deklarace byte [] pole = nový bajt [256] new Random (). NextBytes (array) String randomString = new String (array, Charset.forName ('UTF-8')) // Creating a StringBuffer StringBuffer ra = new StringBuffer () // Appending first 20 alphanumeric characters for (int i = 0 i = 'a' && ch = 'A' && ch = '0' && ch 0)) {ra.append (ch) n--}} // vrácení výsledného řetězce return ra.toString ()} public static void main (String [] args) {// velikost náhodného alfanumerického řetězce int n = 10 // Získat a zobrazit alfanumerický řetězec System.out.println (RequiredString (n))}}

Výstup:

Pokračování tohoto článku o náhodném čísle a generátoru řetězců v Javě

Používání regulárních výrazů

Implementace je následující.

// Program Java vygeneruje náhodný řetězec AlphaNumeric String // pomocí metody regulárních výrazů import java.util. * Import java.nio.charset. * Class Main {static String getAlphaNumericString (int n) {// délka deklarace bajtu [] pole = new byte [256] new Random (). nextBytes (array) String randomString = new String (array, Charset.forName ('UTF-8')) // Creating a StringBuffer StringBuffer ra = new StringBuffer () // remove all spacial char String AlphaNumericString = randomString .replaceAll ('[^ A-Za-z0-9]', '')) // Přidá prvních 20 alfanumerických znaků // z vygenerovaného náhodného řetězce do výsledku pro (int k = 0 k 0) || Character.isDigit (AlphaNumericString.charAt (k)) && (n> 0)) {ra.append (AlphaNumericString.charAt (k)) n--}} // vrácení výsledného řetězce vrací ra.toString ()} public static void main (String [] args) {// velikost náhodného alfanumerického řetězce int n = 15 // Získání a zobrazení alfanumerického řetězce System.out.println (getAlphaNumericString (n))}}

Výstup:

Tak jsme dospěli ke konci tohoto článku. Pokud se chcete dozvědět více, podívejte se na Edureka, důvěryhodná online vzdělávací společnost. Školicí a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java, spolu s různými rámci Java, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.