我在学校有一个项目,我需要模拟车辆的记录。
Vehicle是抽象类,它扩展了两个类(Automobile class和Motor类)。还有一个接口(NewRegistration),它包含一个方法register()
,这两个类实现了该接口。它应该注册一个新的汽车和电机注册,但我应该先检查我插入的注册是否正确checkNumber()
。
总而言之,我已经解决了我所得到的每一项任务,但只有一个我无法解决,而且是生成10个随机数...
注册应该有15个字符,第一个和第二个字符为UpperCase字母,第三个字符符号为" - ",最后两个字符为lowerCase字母..其他字符应为数字和这些数字应该是随机生成的。
这是我到目前为止所做的:
Automobile.java:
public class Automobil extends Vozilo implements NovaRegistracija{
private int brojVrata, brojSedista;
public Automobil(String marka, String model, String registracija, int kubikaza, int brojVrata, int brojSedista) {
super(marka, model, registracija, kubikaza);
this.brojVrata = brojVrata;
this.brojSedista = brojSedista;
}
public Automobil() {
}
// checkNumber() method
@Override
public void proveriBroj() {
boolean provera = true;
boolean proveraKubikaze = true;
String parsedInteger = String.valueOf(getKubikaza());
for (int j = 0; j < parsedInteger.length(); j++) {
if (Character.isLetter(parsedInteger.charAt(j))) {
proveraKubikaze = false;
}
}
// Checking registration
if (this.getRegistracija().length() == 15) {
if (Character.isUpperCase(getRegistracija().charAt(0)) && Character.isUpperCase(getRegistracija().charAt(1))) {
if (getRegistracija().charAt(2) == '-') {
if (Character.isLowerCase(getRegistracija().charAt(getRegistracija().length()-1)) && Character.isLowerCase(getRegistracija().charAt(getRegistracija().length()-2))) {
for (int i = 3; i < getRegistracija().length()-2; i++ ) {
if (!Character.isDigit(getRegistracija().charAt(i))) {
provera = false;
System.out.println("11111111111111111");
break;
}
}
} else {
System.out.println("222222222222");
provera = false;
}
} else {
System.out.println("333333333333");
provera = false;
}
} else {
System.out.println("44444444444444444");
provera = false;
}
} else {
System.out.println("555555555555555");
provera = false;
}
if (proveraKubikaze) {
System.out.println("Kubikaza je dobra!");
} else {
System.out.println("Kubikaza nije dobra!");
}
if (provera) {
System.out.println("Broj registracije je ispravan!");
} else {
System.out.println("Broj registracije je neispravan!");
}
}
// register() method from interface NewRegistration
@Override
public void registruj() {
this.setRegistracija("AA-" + "aa");
proveriBroj();
System.out.println("- - - - - - - - - - - - - - - - - - - -");
}
public int getBrojVrata() {
return brojVrata;
}
public void setBrojVrata(int brojVrata) {
this.brojVrata = brojVrata;
}
public int getBrojSedista() {
return brojSedista;
}
public void setBrojSedista(int brojSedista) {
this.brojSedista = brojSedista;
}
}
那么我现在如何为整个车辆登记随机分配10个生成数字?
提前谢谢。
答案 0 :(得分:2)
使用+ (PDQMediaManager *)manager NS_SWIFT_NAME(defaultManager());
。
org.apache.commons.lang.RandomStringUtils
答案 1 :(得分:1)
Math.random()所以这是我想要的方法,你可以简单地为ex生成简单的数字。乘以10和(或不)舍入。
public static double random()
返回带有正号的double值,大于或等于 0.0且小于1.0。返回值是伪随机选择的,具有来自该范围的(近似)均匀分布。
答案 2 :(得分:1)
这是我写的一个函数:
import java.util.Random
private String generateRegistration() {
String selectFrom1 = "ABCDEFGHIJKLMNOPRSTUVWXYZ";
String selectFrom2 = "0123456789";
String selectFrom3 = selectFrom1.toLowerCase();
return randomFromSelection(selectFrom1,2)+"-"+randomFromSelection(selectFrom2,10)+randomFromSelection(selectFrom3,2)
}
private String randomFromSelection(String selection, int times) {
Random random = new Random();
String toReturn = "";
for (int useless = 0; useless < times; useless++) {
toReturn += selection.charAt(random.nextInt(selection.length()));
}
return toReturn;
}
此功能非常灵活,可用于selection
或times
的任何输入。