Java Tutorial

Java Tutorial Java Features C++ vs Java Java History Java Hello World Java Development Kit Java Runtime Environment Java Virtual Machine Difference between JDK, JRE, and JVM Memory Areas in Java Java Operators Java Keywords Primitive Data Types Variables

Java Loops

Java Do While Loop Java While Loop Java For Loop Java Enhanced For Loop

Java Programs

Java Basic Programs Factorial Program in Java Fibonacci Series Program in Java Prime Number Program in Java Palindrome Number Program in Java Armstrong Number Program in Java Anagram Program in Java Pattern Programs in Java Calculator Program in Java Leap Year Program in Java Addition Program in Java Number Pattern Programs in Java Star Pattern Programs in Java Package Program in Java Pyramid Program in Java Sorting Program in Java String Palindrome Program in Java Even Odd Program in Java For Loop Program in Java If Else Program in Java Switch Case Program in Java GCD Program in Java LCM Program in Java Hello Program in Java Matrix Program in Java Menu Driven Program in Java Series Program in Java Client Server Program in Java Swapping Program in Java Pig Latin Program in Java Tower of Hanoi Program in Java Recursion Program in Java Matrix Multiplication Program in Java Perfect Number Program in Java Classes and Objects in Java Example Programs String Programs in Java Array Programs in Java Constructor Program in Java Inheritance Program in Java Abstract class Program in Java Interface Program in Java Encapsulation Program in Java Polymorphism Program in Java Exception Handling Program in Java Multithreading Program in Java Thread Program in Java Collection Programs in Java ArrayList Program in Java Stack Program in Java Applet Program in Java Swing Program in Java JDBC Program in Java How to run Java program in command prompt How to run Java program in Eclipse

Java Sorting

Sorting Algorithms in Java Merge Sort in Java Quick Sort in Java Bubble Sort in Java Insertion Sort in Java Selection Sort in Java Heap Sort in Java Radix Sort in Java Topological Sort in Java Bucket Sort in Java Counting Sort in Java

Java OOPs Concepts

OOPs - Object Oriented Programming Objects and Classes in Java Java Naming Conventions Constructors in Java Java this keyword Java static keyword Inheritance in Java Aggregation in Java Java super keyword Constructor Chaining and Constructor Overloading Java Polymorphism Static and Dynamic Binding in Java Java Abstraction Abstract class in Java Interface in Java Difference between Abstract class and Interface Java final keyword Packages in Java Access Modifiers in Java Java Wrapper classes Java Numbers Java Characters Java Integer Java Boolean Java Arrays Java Command Line Arguments Java strictfp Keyword Java Math

Java Strings

Java Strings Java String Methods StringBuilder in Java StringBuffer in Java Java Regular Expressions StringBuffer vs StringBuilder String vs StringBuffer String vs StringBuilder String Manipulation in Java Java String Concatenation How to Reverse a String in Java String Array in Java How to Compare Two Strings in Java How to Concatenate Two Strings in Java Why String in Immutable in Java java.lang.NumberFormatException for Input String String Pool in Java Java Generate Random String How to take String Input in Java Java String Interview Questions

Java Exceptions

Exception Handling in Java Java try catch Java throw Java throws Difference between throw and throws Java finally Java Custom Exception Java Exception Propagation

Garbage Collection

Automatic Resource Management in Java Java Garbage Collection Java finalize() Java gc() Difference between final, finally and finalize

Multithreading

Multithreading in Java Process and Thread in Java Basic Terms in Multithreading Java Thread creation Thread Scheduler in Java Java Thread class DeadLock in Java

Java IO

Java IO Java Read File Java BufferedWriter Java InputStreamReader Java File Java Read File Line By Line Java FileOutputStream Jar File in Java

Serialization

Java Serialization Java transient

Networking

Java Network Programming Java Socket Programming Java URL Java URLConnection HttpURLConnection in Java Java InetAddress Java DatagramSocket and Java DatagramPacket

AWT

Java AWT

Swing

Swing in Java

Java Collections

Collections in Java Java List Interface ArrayList in Java LinkedList in Java Vector in Java Stack in Java ArrayList vs LinkedList in Java ArrayList vs Vector in Java Java Set Interface HashSet in Java LinkedHashSet in Java TreeSet in Java Java Queue Interface PriorityQueue in Java ArrayDeque in Java Java Map Interface HashMap in Java LinkedHashMap in Java TreeMap in Java Dictionary in Java Hashtable in Java Properties in Java Collections class in Java Java Comparable Java Comparator Comparable vs Comparator in Java

Java Generics

Generics in Java

Java Annotations

Annotations in Java

Java JDBC

Java JDBC Tutorial

Java Differences

Java vs JavaScript Python vs Java Kotlin vs Java Java vs C++ C# vs Java Static vs Non-static in Java C vs Java int vs Integer in Java Stack vs Heap in Java Java Array vs ArrayList

How to

How to run Java program How to set path in Java How to check the Java version in cmd How to install Java in Windows 10 How to run Java program in cmd How to call a method in Java How to sort an array in Java How to iterate HashMap in Java How to write Java program How to create an array in Java How to create a package in Java How to generate random numbers in Java How to input String in Java How to create thread in Java How to find length of String in Java How to sort a string in Java How to use scanner in Java How to achieve multiple inheritance in Java How to run Java program in Eclipse How to call a function in Java How to create array of objects in Java How to create custom exception in Java How to achieve abstraction in Java How to call static method in Java

Java 8 Features

Java 8 Features Lambda Expressions in Java Functional Interface in Java Streams in Java Java Base64 Encoding and Decoding Parallel Arrays Sort in Java

Java 9 Features

Java 9 Tutorial Java 9 Try With Resources Java 9 Interface Private Method

Java Servlet Tutorial

Java Servlets Tutorial

Java JSP Tutorial

Java JSP Tutorial

Hibernate Tutorial

Hibernate Tutorial

Spring Tutorial

Spring Tutorial

Spring MVC Tutorial

Spring MVC Tutorial

Jenkins Tutorial

Jenkins Tutorial

Java Math Methods

Math.abs() Math.acos() Math.addExact() Math.asin() Math.atan () Math.atan2() Math.cbrt() Math.ceil() Math.copysign() Math.cos() Math.cosh() Math.decrementExact() Math.exp() Math.expm1() Math.floor() Math.floorDiv() Math.floorMod() Math.getExponent() Math.hypot() Math.IEEEremainder() Math.incrementExact() Math.log() Math.log10() Math.log1p() Math.max() Math.min() Math.multiplyExact() Math.multiplyFull() Math.negateExact() Math.nextAfter() Math.nextDown() Math.nextUp() Math.pow() Math.random() Math.rint() Math.round() Math.scalb() Math.signum() Math.sin() Math.sinh() Math.sqrt() Math.subtractExact() Math.tan() Math.tanh() Math.toDegrees() Math.toIntExact() Math.toRadians() Math.ulp()

Java String Methods

toCharArray() copyValueOf() endsWith() equals() equalsIgnoreCase() format() getBytes() getChars() hashCode() indexOf() intern() isEmpty() join() lastIndexOf() length() replace() replaceAll() replaceFirst() split() startsWith() subSequence() substring() toLowerCase() toUpperCase() trim() valueOf()

Java Conversion

Java Convert String to int Java Convert int to String Java Convert String to long Java Convert long to String Java Convert String to float Java Convert float to String Java Convert String to double Java Convert double to String Java Convert String to Date Java Convert Date to String Java Convert String to Object Java Convert Object to String Java Convert String to char Java Convert char to String Java Convert int to long Java Convert long to int

Misc

Functional Interfaces in Java Singleton class in Java Awesome explanation of Strings in Java Object class in Java Static class in Java All the important string methods in Java String Handling Method in Java What are Array strings in Java Advantages and Disadvantages of Strings in Java Big Decimal class in Java Class definition in Java Char and String differences in Java Difference between String, StringBuffer and StringBuilder in java Replace character in string Java String Coding Interview Questions in Java What is String in Java? String isnullorempty in Java String Matches in Java Trim Method in String Java Bean class in Java Libraries in Java Arithmetic Operations on String in Java Convert Char array to string in java Check whether Java is installed or not How to calculate time difference in Java How to stop execution after a certain time in Java Jagged Array in Java Java ArraylistRemove() Time Complexity Java Swing Time Picker Zigzag Array in Java

Java Generate Random String

Java Generate Random String

In this tutorial, we will learn about to generate random string in Java. Random generation strings mean any string will be generated, which does not follow any pattern. Thus, no one can guess which string is going to be generated. Some of the ways to generate the random string are discussed below.

By Using the random() Method

The Math class has the static method random(), which returns a double value between 0.0 and 1.0.

Syntax:

public static random()

The following program uses the random() method to generate the random strings.

FileName: RandomStringsExample.java

 public class RandomStringsExample
{ 
// method to generate random strings
public String getRandomString(int size)
{
// Choose a random character from the given string
String alphaNumericStr = "abcdefghijklmnopqurestuvwxyz"
                          + "0123456789"
                          + "ABCDEFGHIJKLMNOPQURESTUVWXYZ";
StringBuffer sbfr = new StringBuffer(size);
// loop for generating choosing a
// random character from the alphaNumericStr variable
for (int j = 0; j < size; j++)
{
// Generating a random number that lies in the range of
// 0 to alphaNumericStr variable length
double randNo = Math.random();
// getting the index using the randNo
int idx = (int)(alphaNumericStr.length() * randNo);
// add Character one by one in end of sb
sbfr.append(alphaNumericStr.charAt(idx));
}
// returning the randomly generated string
return sbfr.toString();
}
// main method
public static void main(String argvs[])
{
// creating an object of the RandomStringsExample
RandomStringsExample ob = new RandomStringsExample();
int j = 0;
System.out.println("The 20 random strings are: \n");
// Loop for generating 20 random strings
while(j < 20)
{
    // determining the size of the random string
    int size = (int)(20 * Math.random());
    // printing the randomly generated string
    String str = ob.getRandomString(size);
    System.out.println(str);
    j = j + 1;
}
}
} 

Output:

 The 20 random strings are:
oyDLouoHW
zR5UffpV
6sTIPXWkADPUs
eOM6cYRF
YNwhTNviEqrjU58B02d
vREwFR9FknQd
9m
r1
b3ALU9EnTlur
u6HpQA4ah5BLojv0vno
xGEr1F6C4
5z64PXRRLEURety0
Q8Cvq
wf
SGeM7QdE2csmpHB
b
7
Oqqpe
T
Rj8A5kDGiR6DBf0i0v 

Explanation: The strings are generated from picking the characters at random from the alphNumericStr. The size of the randomly generated string is also dependent on the random() method. Therefore, we see different sizes of string in the output. Note that every time we run the above program, different strings of different lengths are generated.

By Using CharSet

CharSet can be used to generate random strings of the random size. The CharSet is present in the java.nio.charset package.

FileName: RandomStringsExample1.java

 // importing different packages required in the program
import java.nio.charset.*;
import java.util.*;
public class RandomStringsExample1
{ 
// method to generate random strings
public String getRandomString(int size)
{
// Choose random character from the given string
// The length is restricted by 256 characters
byte[] arr = new byte[256];
// using the nextBytes method of the Random class
// to fil the byte array arr.
new Random().nextBytes(arr);
// converting the byte array arr into a string
// 8-bit Unicode transformation is used
String rndmString = new String(arr, Charset.forName("UTF-8"));
StringBuilder sbdr = new StringBuilder();
// loop for generating choosing characters from the rndmString variable
for (int j = 0; j < size; j++)
{
// getting character at random basis from
// the string rndmString
char c = rndmString.charAt(j);
// Ensuring that randomly generated
// string is alphnumeric
if( (c >= 'A' && c <= 'Z')
    || (c >= 'a' && c <= 'z')
    || (c >= '0' && c <= '9') )
{
// appending the character
sbdr.append(c);       
}
}
// getting string from the Stringbuilder
String str = sbdr.toString();
// returning the randomly generated string
return str;
}
// main method
public static void main(String argvs[])
{
// creating an object of the RandomStringsExample1
RandomStringsExample1 ob = new RandomStringsExample1();
int j = 0;
System.out.println("The 20 random strings are: \n");
// Loop for generating 20 random strings
while(j < 20)
{
    // determining the size of the random string
    int size = (int)(20 * Math.random());
    String str = ob.getRandomString(size);
    // printing the randomly generated string
    System.out.println(str);
    j = j + 1;
}
}
} 

Output:

 The 20 random strings are:
0Um6
DXeoOU
8fnCws
fhdd
No
M0G4
BM5B
H
KN
gE7
jP
dopJ5
7x
LP
F
CtiJL
ujA08
U 

Explanation: First, we have bounded that the length of the byte array is 256. It means that a string rndmString comprising 256 characters is generated. From this string, alphanumeric characters are filtered with the help of the for-loop. These filtered alphanumeric characters comprise the string str, which is displayed in the output. The blank spaces in the output represent that the for-loop did not encounter any alphanumeric character.

By Using Regular Expressions

Regular expressions can also be used to generate random strings. The following program illustrates the same.

FileName: RandomStringsExample2.java

 // importing different packages required in the program
import java.nio.charset.*;
import java.util.*;
public class RandomStringsExample2
{ 
// method to generate random strings
public String getRandomString(int size)
{
// Choose random character from the given string
// The length is restricted by 256 characters
byte[] arr = new byte[256];
// using the nextBytes method of the Random class
// to fil the byte array arr.
new Random().nextBytes(arr);
// converting the byte array arr into a string
// 8-bit Unicode transformation is used
String rndmString = new String(arr, Charset.forName("UTF-8"));
// creating an object of the StringBuilder class              
StringBuilder sbdr = new StringBuilder();
// replace all the non alphanumeric characters withe null character
String  alphaNumericStr = rndmString.replaceAll("[^a-zA-Z0-9]", "");
// loop for choosing character from the alphaNumericStr variable
for (int j = 0; j < size; j++)
{
// getting characters from the string alphaNumericStr
char c = alphaNumericStr.charAt(j);
// appending the character
sbdr.append(c);       
}
// getting string from the Stringbuilder
String str = sbdr.toString();
// returning the randomly generated string
return str;
}
// main method
public static void main(String argvs[])
{
// creating an object of the RandomStringsExample2
RandomStringsExample2 ob = new RandomStringsExample2();
int j = 0;
System.out.println("The 20 random strings are: \n");
// Loop for generating 20 random strings
while(j < 20)
{
    // determining the size of the random string
    int size = (int)(20 * Math.random());
    String str = ob.getRandomString(size);
    // printing the randomly generated string
    System.out.println(str);
    j = j + 1;
}
}
} 

Output:

 The 20 random strings are:
gK
vLWBXmdPucx3wkqDy
N5K112
a5W
TbQ90aRC
Eg0qV
iFYcB
m4MH9mu
kU99SC6a6a3Nl9p
nHliLGJFg
GxLfHllWPPv095bJt
d6idlFKVGczJ
TO7J
VQ
jdIZWzZw7j4r
X0zFn52Yf7IyHXyhOgu
UMq5wZM
zhUMUKr0yvf
i1OQVR8 

Explanation: The above program is quite similar to the previous one. The only difference is that the usage of the regular expression. Instead of filtering the alphanumeric characters from the string using if-block, we have used the regular expression to eliminate the non-alphanumeric characters from the string.

By Using ASCII Values

The random strings can also be generated using the ASCII values of characters. In this approach, the random() method points to the ASCII value of the character. Using the ASCII value, the character is retrieved and added to the string. The string is then returned. Let’s observe the following example for a better understanding.

FileName: RandomStringsExample3.java

 public class RandomStringsExample3
{ 
// method for generating random character
// the randomly generated character only comprise
// of alphanumeric symbols
public char getRandomChar()
{
// For capital letters A - Z
double randNo1 = Math.random();
randNo1 = (randNo1 * (90 - 65 + 1) + 65);
int randInt1 = (int)randNo1;
// For small letters a -z
double randNo2 = Math.random();
randNo2 = (randNo2 * (122 - 97 + 1) + 97);
int randInt2 = (int)randNo2;
// For numeric values 0 - 9
double randNo3 = Math.random();
randNo3 = (randNo3 * (57 - 48 + 1) + 48);
int randInt3 = (int)randNo3;
// For choosing between capital or small letters or numbers
double randNo4 = Math.random() * 3;
int randInt4 = (int)randNo4;
char ch;
// 2 maps to numeric values
if(randInt4 == 2)
{
    ch = (char)randInt3;
}
// 1 maps to small letters
else if(randInt4 == 1)
{
    ch = (char)randInt2;
}
// 0 maps to capital letters
else
{
    ch = (char)randInt1;
}
return ch;
}
// method to generate random strings
public String getRandomString(int size)
{
// declaring variable for storing alphanumeric string
String  alphaNumericStr = "";
// loop for adding character to the alphaNumericStr variable
for (int j = 0; j < size; j++)
{
// invoking the method getRandomChar()
char c = getRandomChar();
// getting characters from the string alphaNumericStr
alphaNumericStr = alphaNumericStr + c;
}
// returning the randomly generated string
return alphaNumericStr;
}
// main method
public static void main(String argvs[])
{
// creating an object of the RandomStringsExample3
RandomStringsExample3 ob = new RandomStringsExample3();
int j = 0;
System.out.println("The 20 random strings are: \n");
// Loop for generating 20 random strings
while(j < 20)
{
    // determining the size of the random string
    int size = (int)(20 * Math.random());
    String str = ob.getRandomString(size);
    // printing the randomly generated string
    System.out.println(str);
    j = j + 1;
}
}
} 

Output:

 The 20 random strings are:
3vudQ74356062mSs831
CuMrf66G4CHN9227t
Nh6ALPdHL
7wWeF78rPeQaC
99942216r9oI
1Re0A5Ql5E3
1bw1mhKJ5f5zV0F0wv
70L
X79LYk7GY3MJ
BCHDXUYNyz6M
FXRpy3XhLKo
2796rI3Ko3
qW25J9
ny024URSM6bhj20MK
0zFCKB33DQM0g08IAAg
893LH3M2VQBa
pcJrEWVzp12cN7
vnFK1xr2
Z45Y2Wzb97ZdAny56uI
IM20d5c691tZx8 

Explanation: The random() method has been used in such a way that it always generates numbers ranging between 65 – 90, 97 – 122, and 48 – 57. These ranges are nothing but the ASCII value of capital letters, small letters, and digits, respectively. The choice of selection among the capital letters or small letters or digits is also dependent on the random() method. The variable randInt4 determines whether the next character is going to be a capital letter, or smaller letter, or the digits. The randInt4 always gives a random value between 0 to 2, where 0 maps to capital letters, 1 map to small letters, and the 2 maps to digits.



ADVERTISEMENT
ADVERTISEMENT