Created
January 11, 2023 00:40
-
-
Save oofnivek/f2233ce36eaf6530df269d4ef9ca7b4c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package common; | |
import java.util.Random; | |
public class MyRandom { | |
private String alphabets = "abcdefghijklmnopqrstuvwxyz"; | |
private String numbers = "0123456789"; | |
private String alphanumerics = numbers + alphabets; | |
public String randomizer(String validChars, int length){ | |
Random random = new Random(); | |
char[] charArray = validChars.toCharArray(); | |
String output = ""; | |
for(int a=0; a<length; a++){ | |
output += charArray[random.nextInt(charArray.length)]; | |
} | |
return output; | |
} | |
public String randomAlphabets(int length){ | |
return randomizer(alphabets,length); | |
} | |
public String randomNumbers(int length){ | |
return randomizer(numbers, length); | |
} | |
public String randomAlphanumerics(int length){ | |
return randomizer(alphanumerics, length); | |
} | |
public String randomBin(){ | |
return randomizer("123456789",1)+randomNumbers(5); | |
} | |
public String randomLuhn(String bin){ | |
int remainder = 15 - bin.length(); | |
String fifteen = bin + randomNumbers(remainder); | |
return fifteen + getChecksum(fifteen); | |
} | |
private String getChecksum(String fifteen){ | |
int total = 0; | |
for(int a=0; a<fifteen.length(); a++){ | |
total += getDigit(fifteen, a); | |
} | |
int remainder = total % 10; | |
int output = 0; | |
if(remainder > 0){ | |
output = 10 - remainder; | |
} | |
return output+""; | |
} | |
private int getDigit(String fifteen, int index){ | |
char[] charArray = fifteen.toCharArray(); | |
int output = 0; | |
if(index%2 == 0){ | |
output = Integer.parseInt(charArray[index]+"") *2; | |
} else { | |
output = Integer.parseInt(charArray[index]+""); | |
} | |
if(output>9){ | |
char[] temp = (output+"").toCharArray(); | |
output = Integer.parseInt(temp[0]+"")+Integer.parseInt(temp[1]+""); | |
} | |
return output; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment