Перебирание заглавных и строчных комбинаций в Java

Имею следующие 6 символов: udjoqs

Как я могу программно сделать перебор этих символов (2^6 степени, если я правильно понимаю) Чтобы получилось нечто следующее:

Udjoqs
uDjoqs
....
UdJOS

И так далее?

Всего должно получится 64 варианта


Ответы (1 шт):

Автор решения: Sergey Zh.
    String str = "udjoqs";
    for (int i = 1; i < 64; i++) {
        String num = new StringBuilder(Integer.toBinaryString(i)).reverse().toString();
        StringBuilder stringBuilder = new StringBuilder();
        for (int j = 0; j < str.length(); j++) {
            if (j < num.length()) {
                if (num.charAt(j) == '0') {
                    stringBuilder.append(str.charAt(j));

                } else {
                    stringBuilder.append(Character.toUpperCase(str.charAt(j)));
                }
            } else {
                stringBuilder.append(str.charAt(j));
            }
        }
        System.out.println(stringBuilder.toString());
    }

Выводит как в вашем примере.

Вижу, что вы новый участник на этом ресурсе, если мой ответ вы считает правильным решением, то вы можете отметить его зелёной галочкой, как верное решение вашего вопроса. Если что-то по коду не понятно - пишите в комментариях под этим ответом.

→ Ссылка