I'm trying to write a program that takes user input for a positive integer wordLength and lists all possible arrangements of wordLength capital letters between A and D. The code I'm using now should output
AA
AB
AC
AD
BA
BB
BC
BD
and so on when the input is 2. However, this is the output I'm getting:
AA
AAAB
AAABAC
AAABACAD
AAABACADBA
AAABACADBABB
AAABACADBABBBC
AAABACADBABBBCBD
AAABACADBABBBCBDCA
AAABACADBABBBCBDCACB
AAABACADBABBBCBDCACBCC
AAABACADBABBBCBDCACBCCCD
AAABACADBABBBCBDCACBCCCDDA
AAABACADBABBBCBDCACBCCCDDADB
AAABACADBABBBCBDCACBCCCDDADBDC
AAABACADBABBBCBDCACBCCCDDADBDCDD
AA
AAAB
AAABAC
AAABACAD
AAABACADBA
AAABACADBABB
AAABACADBABBBC
AAABACADBABBBCBD
AAABACADBABBBCBDCA
AAABACADBABBBCBDCACB
AAABACADBABBBCBDCACBCC
AAABACADBABBBCBDCACBCCCD
AAABACADBABBBCBDCACBCCCDDA
AAABACADBABBBCBDCACBCCCDDADB
AAABACADBABBBCBDCACBCCCDDADBDC
AAABACADBABBBCBDCACBCCCDDADBDCDD
AA
AAAB
AAABAC
AAABACAD
AAABACADBA
AAABACADBABB
AAABACADBABBBC
AAABACADBABBBCBD
AAABACADBABBBCBDCA
AAABACADBABBBCBDCACB
AAABACADBABBBCBDCACBCC
AAABACADBABBBCBDCACBCCCD
AAABACADBABBBCBDCACBCCCDDA
AAABACADBABBBCBDCACBCCCDDADB
AAABACADBABBBCBDCACBCCCDDADBDC
AAABACADBABBBCBDCACBCCCDDADBDCDD
Edit: I'm so sorry for how the output looks, I can't get it to format correctly. The code is as follows:
import java.util.Scanner;
public class WordGenerator {
public static void main(String [] args) {
Scanner scnr = new Scanner(System.in);
System.out.print("Enter desired 'word' length: ");
int wordLength = scnr.nextInt();
System.out.println(wordLength);
String s = "";
int i = 0;
char letter1;
char letter2;
char letter3;
char letter4;
if (wordLength == 1) {
letter1 = 'A';
while (letter1 <= 'D') {
letter1++;
s = s + letter1;
System.out.println(s);
}
}
else if(wordLength% 2 == 0){
while (s.length() <= wordLength) {
letter1 = 'A';
while (letter1 <= 'D') {
letter2 = 'A';
while (letter2 <= 'D') {
s = s + letter1 + letter2;
System.out.println(s);
letter2++;
}
letter1++;
}
wordLength--;
}
}
else if(wordLength % 2 != 0) {
while (s.length() <= wordLength) {
letter1 = 'A';
while (letter1 <= 'D') {
letter2 = 'A';
while (letter2 <= 'D') {
s = s + letter1 + letter2;
letter2++;
}
letter1++;
}
letter3 = 'A';
while (letter3 <= 'D') {
letter3++;
s = s + letter3;
System.out.println(s);
}
wordLength--;
}
}
}
}