Ten artykuł wprowadzi Cię w Liczba losowa And String Generator w Javie, a następnie programistyczną demonstrację. Poniższe wskazówki zostaną omówione w tym artykule,
- Java.util.Random
- Math.random ()
- Klasa Java.util.concurrent.ThreadLocalRandom
- Generowanie losowego ciągu w Javie
- Korzystanie z Math.random ()
- Korzystanie z CharSet
- Używanie wyrażeń regularnych
Istnieją trzy metody generowania liczb losowych w Javie przy użyciu wbudowanych metod i klas.
- Klasa Java.util.Random
- Metoda Math.random
- ThreadLocalRandom klasa
Zacznijmy więc artykuł o generatorze liczb losowych i ciągów znaków w Javie,
Jawa .Przydatny. Losowy
Przede wszystkim musimy utworzyć instancję tej klasy w programie, a następnie wywołać różne wbudowane metody, takie jak nextInt (), nextDouble () itp., Używając utworzonej przez nas instancji.
Przy użyciu tej klasy można tworzyć losowe liczby typu integer, float, double, long, booleans.
Argumenty można przekazać do metod definiujących górną granicę, do której ma zostać wygenerowana liczba. Na przykład nextInt (4) wygeneruje liczby z zakresu od 0 do 3 (łącznie).
Przykład 1:
// Program w Javie pokazujący generowanie liczb losowych // przy użyciu java.util.Random import java.util.Random public class Main {public static void main (String args []) {// tworzenie instancji klasy Random Random rand = new Random () // Generowanie losowych liczb całkowitych w zakresie od 0 do 99 int int1 = rand.nextInt (100) int int2 = rand.nextInt (100) // Drukowanie losowych liczb całkowitych System.out.println ('Random Integers:>' + int1) System.out.println ('Random Integers:>' + int2) // Generowanie losowych podwójnych double dub1 = rand.nextDouble () double dub2 = rand.nextDouble () // Drukowanie losowych podwójnych System.out.println (' Random Doubles:> '+ dub1) System.out.println (' Random Doubles:> '+ dub2)}}
Wynik:
Przykład:
// Program w Javie pokazujący generowanie liczb losowych // przy użyciu java.util.Random import java.util.Random public class Main {public static void main (String args []) {// tworzenie instancji klasy Random Random rand = new Random () // Generowanie losowych liczb całkowitych w zakresie od 0 do 9 int int1 = rand.nextInt (10) // Drukowanie losowej liczby całkowitej System.out.println ('Random Integer:>' + int1)}}
Wynik:
Przechodząc dalej z tym artykułem
Math . losowy ( )
Klasa o nazwie Math składa się z różnych metod wykonywania wielu różnych operacji numerycznych, w tym logarytmów, rozwiązywania potęgowania itp. Wśród tych operacji jest random (), który służy do generowania liczb losowych typu podwójnych z zakresu od 0,0 do 1,0 . Ta metoda zwraca podwójną wartość, która jest większa lub równa 0,0 i mniejsza lub równa 1,0 wraz ze znakiem dodatnim. Wartości, które są zwracane przez random (), są wybierane losowo przez maszynę.
Przykład 1:
// Program w Javie pokazujący działanie // Math.random () do generowania liczb losowych import java.util. * Public class Main {public static void main (String args []) {// Generowanie losowej wartości typu danych double System.out.println ('Wartość losowa:' + Math.random ())}}
Wynik:
Aby sprawdzić losowość, uruchom program jeszcze raz.
// Program w Javie pokazujący działanie // Math.random () do generowania liczb losowych import java.util. * Public class Main {public static void main (String args []) {// Generowanie losowej wartości typu danych double System.out.println ('Inna losowa wartość:' + Math.random ())}}
Wynik:
Przechodząc do tego artykułu na temat generatora liczb losowych i ciągów znaków w java
Klasa Java.util.concurrent.ThreadLocalRandom
Ta klasa została wprowadzona w Javie 1.7 do generowania losowych liczb liczb całkowitych, liczb podwójnych, wartości logicznych itp.
Przykład 1:
// Program w języku Java do demonstrowania działania ThreadLocalRandom // do generowania liczb losowych. import java.util.concurrent.ThreadLocalRandom public class Main {public static void main (String args []) {// Generowanie losowych liczb całkowitych w zakresie od 0 do 99 int int2 = ThreadLocalRandom.current (). nextInt () // Drukowanie losowej liczby całkowitej System.out.println ('Random Integers:' + int2) // Generowanie Random doubles double dub1 = ThreadLocalRandom.current (). NextDouble () double dub2 = ThreadLocalRandom.current (). NextDouble () // Drukowanie losowych podwójnych System. out.println ('Random Doubles:' + dub1) System.out.println ('Random Doubles:' + dub2)}}
Wynik:
instancja klasy java
Przykład 2:
// Program w języku Java do demonstrowania działania ThreadLocalRandom // do generowania liczb losowych. import java.util.concurrent.ThreadLocalRandom public class Main {public static void main (String args []) {// Generating random booleans boolean bool1 = ThreadLocalRandom.current (). nextBoolean () boolean bool2 = ThreadLocalRandom.currentean (). nextBool () // Print random Booleans System.out.println ('Random Booleans:' + bool1) System.out.println ('Random Booleans:' + bool2)}}
Wynik:
Przechodząc do tego artykułu na temat generatora liczb losowych i ciągów znaków w java
Generowanie losowego ciągu w Javie
Możemy wygenerować losowy ciąg alfanumeryczny za pomocą następujących metod:
Przechodząc do tego artykułu na temat generatora liczb losowych i ciągów znaków w java
Korzystanie z matematyki . losowy ( )
Poniżej znajduje się przykład, aby lepiej zrozumieć koncepcję.
// Program Java generujący losowy łańcuch AlphaNumeric // przy użyciu metody Math.random () public class Main {// zdefiniuj funkcję generującą losowy ciąg o długości n static String RequiredString (int n) {// wybrał Character random from this String String AlphaNumericString = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + '0123456789' + 'abcdefghijklmnopqrstuvxyz' // utwórz StringBuffer rozmiar AlphaNumericString StringBuilder s = new StringBuilder (y 0 y intWynik:
Przechodząc do tego artykułu na temat generatora liczb losowych i ciągów znaków w java
Korzystanie z CharSet
Musimy tutaj użyć innego pakietu, np. Pakietu java.nio.charset.
Poniżej znajduje się ilustrowany przykład.// Program Java generuje losowy ciąg alfanumeryczny // przy użyciu zestawu znaków import java.util. * Import java.nio.charset. * Class Main {static String RequiredString (int n) {// deklaracja długości bajt [] tablica = nowy bajt [256] new Random (). NextBytes (array) String randomString = new String (array, Charset.forName ('UTF-8')) // Tworzenie StringBuffer StringBuffer ra = new StringBuffer () // Dołączanie pierwszych 20 znaków alfanumerycznych for (int i = 0 i = 'a' && ch = 'A' && ch = '0' && ch 0)) {ra.append (ch) n--}} // zwracanie powstałego ciągu return ra.toString ()} public static void main (String [] args) {// rozmiar losowego ciągu alfanumerycznego int n = 10 // Pobierz i wyświetl ciąg alfanumeryczny System.out.println (RequiredString (n))}}Wynik:
Przechodząc do tego artykułu na temat generatora liczb losowych i ciągów znaków w java
Używanie wyrażeń regularnych
Implementacja jest następująca Przykład.
// Program Java generuje losowy ciąg alfanumeryczny // przy użyciu metody wyrażeń regularnych import java.util. * Import java.nio.charset. * Class Main {static String getAlphaNumericString (int n) {// deklaracja długości bajt [] tablica = new byte [256] new Random (). nextBytes (array) String randomString = new String (array, Charset.forName ('UTF-8')) // Tworzenie StringBuffer StringBuffer ra = new StringBuffer () // usuń wszystkie odstępy char String AlphaNumericString = randomString .replaceAll ('[^ A-Za-z0-9]', '') // Dołącz pierwsze 20 znaków alfanumerycznych // z wygenerowanego losowego ciągu znaków do wyniku for (int k = 0 k 0) || Character.isDigit (AlphaNumericString.charAt (k)) && (n> 0)) {ra.append (AlphaNumericString.charAt (k)) n--}} // zwracanie powstałego ciągu return ra.toString ()} public static void main (String [] args) {// rozmiar losowego ciągu alfanumerycznego int n = 15 // Pobierz i wyświetl alfanumeryczny ciąg System.out.println (getAlphaNumericString (n))}}Wynik:
W ten sposób doszliśmy do końca tego artykułu. Jeśli chcesz dowiedzieć się więcej, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online. Szkolenie i certyfikacja J2EE i SOA firmy Edureka ma na celu przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy na tym blogu, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.