如何在java中生成10个随机数并将它们分配给字段?

时间:2016-01-25 23:42:08

标签: java

我在学校有一个项目,我需要模拟车辆的记录。

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个生成数字?

提前谢谢。

3 个答案:

答案 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;
}

此功能非常灵活,可用于selectiontimes的任何输入。