#条件を満たさなければ繰り返すソースコード Java
”数字、英語大文字、英語小文字をそれぞれ最低1文字含ませた8ケタのパスワードを生成するプログラム”を作りたいのですが、~~で囲まれている範囲を”数字、英語大文字、英語小文字をそれぞれ最低1文字含んでいなければパスワードを再作成する”ようにしたいです。
import java.util.Random;
public class RandomSample {
public static void main(String[] args) {
int length = 8;
boolean useSign = false;
String style = "normal";
StringBuilder result = new StringBuilder();
StringBuilder source = new StringBuilder();
for (int i = 0x30; i < 0x3A; i++) {
source.append((char) i);
}
if (useSign) {
for (int i = 0x21; i < 0x30; i++) {
source.append((char) i);
}
}
switch (style) {
case "lowerCase":
break;
default:
for (int i = 0x41; i < 0x5b; i++) {
source.append((char) i);
}
break;
}
switch (style) {
case "upperCase":
break;
default:
for (int i = 0x61; i < 0x7b; i++) {
source.append((char) i);
}
break;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int sourceLength = source.length();
Random random = new Random();
while (result.length() < length) {
result.append(source.charAt(Math.abs(random.nextInt()) % sourceLength));
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
System.out.format("%1$s", result);
}
}
知識不足のため、できるだけ詳しく教えていただけると助かります。よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー