我需要在java中创建一些生成随机卡号的东西,并检查它是否有效。 这是我们在main
中必须具备的代码public enum CardType { VISA, MASTER, AMERICAN_EXPRESS, DISCOVERY }
public static void main(String[] args) {
CardType type = CardType.VISA;
String cardNumber = generateCardNumber(type);
System.out.println("Generated " + type + " number " + cardNumber + " validity check: " + isValid(cardNumber));
type = CardType.MASTER;
cardNumber = generateCardNumber(type);
System.out.println("Generated " + type + " number " + cardNumber + " validity check: " + isValid(cardNumber));
}
现在我需要使用这个方法。但是我怎样才能使它(CardType type = CardType.VISA;)工作? 我需要回报什么? 一点点帮助将拯救我的生命:)
public static String generateCardNumber(CardType cardType){
Random rnd = new Random();
int counter=0;
while(counter<=16){
int generate = rnd.nextInt(9);
counter++;
}
return ??;
}
答案 0 :(得分:4)
您可以在枚举中使用抽象方法,并使用它来生成已知的有效卡号:
public enum CardType
{
VISA {
@Override
public String generateNumber()
{
// whatever
}
},
// Other card types
public abstract String generateNumber();
}
这样,你可以这样做:
final String cardNumber = CardType.VISA.generateNumber();
并且不用费心检查之后生成的数字的有效性,因为您可以确保它在方法本身内有效。
答案 1 :(得分:0)
但不完全确定您的问题是什么。要解决我在代码中看到的一个错误,我每次都会将生成分配给一个字符串。喜欢的东西;
public static String generateCardNumber(CardType cardType){
Random rnd = new Random();
int counter=0;
StringBuffer stringBuffer = new StringBuffer();
while(counter<=16){
int generate = rnd.nextInt(9);
stringBuffer.append(generate);
counter++;
}
return stringBuffer.toString();
}
然后验证字符串是卡片将需要根据您的要求执行另一个步骤。