Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package chargenerator;
- import java.util.Arrays;
- public class CharGenerator {
- private final char minLetter;
- private final char maxLetter;
- private final int maxLength;
- private char[] next;
- public CharGenerator(char minLetter, char maxLetter, int maxLength) {
- if (minLetter > maxLetter) {
- throw new IllegalArgumentException("minLetter > maxLetter");
- }
- if (maxLength <= 0) {
- throw new IllegalArgumentException("maxLength <= 0");
- }
- this.minLetter = minLetter;
- this.maxLetter = maxLetter;
- this.maxLength = maxLength;
- next = new char[]{minLetter};
- }
- public String getNext() {
- String ret = new String(next);
- _generateNext();
- return ret;
- }
- private void _generateNext() {
- for (int i = next.length - 1; i >= 0; --i) {
- char letter = next[i];
- if (letter == maxLetter) {
- next[i] = minLetter;
- } else {
- next[i] = (char) (letter + 1);
- return;
- }
- }
- if (next.length == maxLength) {
- next = new char[]{minLetter};
- } else {
- next = Arrays.copyOf(next, next.length + 1);
- next[next.length - 1] = minLetter;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement