我正在尝试使用此方法来生成以4开头的16位信用卡号
如果issuerSymbol等于ISSUER AMER EXPRESS。如果issuerSymbol等于ISSUER VISA,则随机数必须以3开头,如果它是ISSUER MASTER CARD,则随机数必须以5开头。
public Integer getIssuerCode(String issuerSymbol){
int randomInteger = 0;
Random random = new Random();
for(int i = 0; i < 5; i++) {
randomInteger = random.nextInt();
if (issuerSymbol.equals(ISSUER_AMER_EXPRESS)) {
}
else {
System.out.println("error");
}
if(issuerSymbol.equals(ISSUER_VISA)){
}
else{
System.out.println("error");
}
if (issuerSymbol.equals(ISSUER_MASTER_CARD)){
}
else{
System.out.println("error");
}
}
return randomInteger;
}
最佳答案
我认为您是否有其他问题。您需要了解,如果if不是true,它将进入else,应将代码更改为if if else。
if (issuerSymbol.equals(ISSUER_AMER_EXPRESS)) {
} else if(issuerSymbol.equals(ISSUER_VISA)){
} else if (issuerSymbol.equals(ISSUER_MASTER_CARD)){
} else {
System.out.println("error");
}
Random
类的另一个建议包括nextInt(int)
(根据Javadoc)*从该随机数生成器的序列中得出一个伪随机数,均匀分布的int
值在0(含)和指定值(不含)之间。randomInteger = 3 + random.nextInt() % 3;
要么
randomInteger = 3 + random.nextInt(3);
这将确保您randomInteger始终位于3或4或5中