Merge pull request #8358 from sampada07/master
BAEL-3589 : Improvement: Java Generate Random String
This commit is contained in:
commit
8469804de9
@ -1,72 +1,103 @@
|
|||||||
package com.baeldung.randomstrings;
|
package com.baeldung.randomstrings;
|
||||||
|
|
||||||
import org.apache.commons.lang3.RandomStringUtils;
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class RandomStringsUnitTest {
|
public class RandomStringsUnitTest {
|
||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(RandomStringsUnitTest.class);
|
private static final Logger LOG = LoggerFactory.getLogger(RandomStringsUnitTest.class);
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenUsingPlainJava_whenGeneratingRandomStringUnbounded_thenCorrect() {
|
public void givenUsingPlainJava_whenGeneratingRandomStringUnbounded_thenCorrect() {
|
||||||
final byte[] array = new byte[7]; // length is bounded by 7
|
byte[] array = new byte[7]; // length is bounded by 7
|
||||||
new Random().nextBytes(array);
|
new Random().nextBytes(array);
|
||||||
final String generatedString = new String(array, Charset.forName("UTF-8"));
|
String generatedString = new String(array, Charset.forName("UTF-8"));
|
||||||
|
|
||||||
LOG.debug(generatedString);
|
LOG.debug(generatedString);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenUsingPlainJava_whenGeneratingRandomStringBounded_thenCorrect() {
|
public void givenUsingPlainJava_whenGeneratingRandomStringBounded_thenCorrect() {
|
||||||
final int leftLimit = 97; // letter 'a'
|
int leftLimit = 97; // letter 'a'
|
||||||
final int rightLimit = 122; // letter 'z'
|
int rightLimit = 122; // letter 'z'
|
||||||
final int targetStringLength = 10;
|
int targetStringLength = 10;
|
||||||
final Random random = new Random();
|
Random random = new Random();
|
||||||
final StringBuilder buffer = new StringBuilder(targetStringLength);
|
StringBuilder buffer = new StringBuilder(targetStringLength);
|
||||||
|
|
||||||
for (int i = 0; i < targetStringLength; i++) {
|
for (int i = 0; i < targetStringLength; i++) {
|
||||||
final int randomLimitedInt = leftLimit + (int) (random.nextFloat() * (rightLimit - leftLimit + 1));
|
int randomLimitedInt = leftLimit + (int) (random.nextFloat() * (rightLimit - leftLimit + 1));
|
||||||
buffer.append((char) randomLimitedInt);
|
buffer.append((char) randomLimitedInt);
|
||||||
}
|
}
|
||||||
final String generatedString = buffer.toString();
|
String generatedString = buffer.toString();
|
||||||
|
|
||||||
LOG.debug(generatedString);
|
LOG.debug(generatedString);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenUsingApache_whenGeneratingRandomString_thenCorrect() {
|
public void givenUsingJava8_whenGeneratingRandomAlphabeticString_thenCorrect() {
|
||||||
final String generatedString = RandomStringUtils.random(10);
|
int leftLimit = 97; // letter 'a'
|
||||||
|
int rightLimit = 122; // letter 'z'
|
||||||
LOG.debug(generatedString);
|
int targetStringLength = 10;
|
||||||
}
|
Random random = new Random();
|
||||||
|
|
||||||
@Test
|
String generatedString = random.ints(leftLimit, rightLimit + 1)
|
||||||
public void givenUsingApache_whenGeneratingRandomAlphabeticString_thenCorrect() {
|
.limit(targetStringLength)
|
||||||
final String generatedString = RandomStringUtils.randomAlphabetic(10);
|
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
|
||||||
|
.toString();
|
||||||
LOG.debug(generatedString);
|
|
||||||
}
|
LOG.debug(generatedString);
|
||||||
|
}
|
||||||
@Test
|
|
||||||
public void givenUsingApache_whenGeneratingRandomAlphanumericString_thenCorrect() {
|
@Test
|
||||||
final String generatedString = RandomStringUtils.randomAlphanumeric(10);
|
public void givenUsingJava8_whenGeneratingRandomAlphanumericString_thenCorrect() {
|
||||||
|
int leftLimit = 48; // numeral '0'
|
||||||
LOG.debug(generatedString);
|
int rightLimit = 122; // letter 'z'
|
||||||
}
|
int targetStringLength = 10;
|
||||||
|
Random random = new Random();
|
||||||
@Test
|
|
||||||
public void givenUsingApache_whenGeneratingRandomStringBounded_thenCorrect() {
|
String generatedString = random.ints(leftLimit, rightLimit + 1)
|
||||||
final int length = 10;
|
.filter(i -> (i <= 57 || i >= 65) && (i <= 90 || i >= 97))
|
||||||
final boolean useLetters = true;
|
.limit(targetStringLength)
|
||||||
final boolean useNumbers = false;
|
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
|
||||||
final String generatedString = RandomStringUtils.random(length, useLetters, useNumbers);
|
.toString();
|
||||||
|
|
||||||
LOG.debug(generatedString);
|
LOG.debug(generatedString);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
@Test
|
||||||
|
public void givenUsingApache_whenGeneratingRandomString_thenCorrect() {
|
||||||
|
String generatedString = RandomStringUtils.random(10);
|
||||||
|
|
||||||
|
LOG.debug(generatedString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenUsingApache_whenGeneratingRandomAlphabeticString_thenCorrect() {
|
||||||
|
String generatedString = RandomStringUtils.randomAlphabetic(10);
|
||||||
|
|
||||||
|
LOG.debug(generatedString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenUsingApache_whenGeneratingRandomAlphanumericString_thenCorrect() {
|
||||||
|
String generatedString = RandomStringUtils.randomAlphanumeric(10);
|
||||||
|
|
||||||
|
LOG.debug(generatedString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenUsingApache_whenGeneratingRandomStringBounded_thenCorrect() {
|
||||||
|
int length = 10;
|
||||||
|
boolean useLetters = true;
|
||||||
|
boolean useNumbers = false;
|
||||||
|
String generatedString = RandomStringUtils.random(length, useLetters, useNumbers);
|
||||||
|
|
||||||
|
LOG.debug(generatedString);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user