Advertisement
Guest User

CharGenerator

a guest
Feb 10th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.34 KB | None | 0 0
  1. package chargenerator;
  2.  
  3. import java.util.Arrays;
  4.  
  5. public class CharGenerator {
  6.  
  7.     private final char minLetter;
  8.     private final char maxLetter;
  9.     private final int maxLength;
  10.  
  11.     private char[] next;
  12.  
  13.     public CharGenerator(char minLetter, char maxLetter, int maxLength) {
  14.         if (minLetter > maxLetter) {
  15.             throw new IllegalArgumentException("minLetter > maxLetter");
  16.         }
  17.         if (maxLength <= 0) {
  18.             throw new IllegalArgumentException("maxLength <= 0");
  19.         }
  20.         this.minLetter = minLetter;
  21.         this.maxLetter = maxLetter;
  22.         this.maxLength = maxLength;
  23.         next = new char[]{minLetter};
  24.     }
  25.  
  26.     public String getNext() {
  27.         String ret = new String(next);
  28.         _generateNext();
  29.         return ret;
  30.     }
  31.  
  32.     private void _generateNext() {
  33.         for (int i = next.length - 1; i >= 0; --i) {
  34.             char letter = next[i];
  35.             if (letter == maxLetter) {
  36.                 next[i] = minLetter;
  37.             } else {
  38.                 next[i] = (char) (letter + 1);
  39.                 return;
  40.             }
  41.         }
  42.         if (next.length == maxLength) {
  43.             next = new char[]{minLetter};
  44.         } else {
  45.             next = Arrays.copyOf(next, next.length + 1);
  46.             next[next.length - 1] = minLetter;
  47.         }
  48.     }
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement