Three steps to implement your function:
Step#1 You can specify a string, including the chars A-Z and 0-9.
Like.
String candidateChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
Step#2 Then if you would like to generate a random char from this candidate string. You can use
candidateChars.charAt(random.nextInt(candidateChars.length()));
Step#3 At last, specify the length of random string to be generated (in your description, it is 17). Writer a for-loop and append the random chars generated in step#2 to StringBuilder object.
Based on this, here is an example
public class RandomTest { public static void main (String[] args) { System.out.println (generateRandomChars ( "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", 17)); } /** * * @param candidateChars the candidate chars * @param length the number of random chars to be generated * * @return */ public static String generateRandomChars (String candidateChars, int length) { StringBuilder sb = new StringBuilder (); Random random = new Random (); for (int i = 0; i < length; i ++) { sb.append (candidateChars.charAt (random.nextInt (candidateChars .length ()))); } return sb.toString (); } }