有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

Vehicle是一个抽象类,它扩展了两个类(汽车类和汽车类)。还有一个接口(NewRegistration),其中包含一个方法register(),这两个类实现了该接口。它应该为汽车和汽车注册一个新的注册,但我之前应该检查我插入的注册是否在一种方法checkNumber()中正确

总之,我已经解决了所有的任务,但只有一个我不能解决,那就是生成10个随机数

注册应包含15个字符,第一个和第二个字符为大写字母,第三个字符为“-”,最后两个字符为小写字母。。其他字符应为数字,这些数字应随机生成

以下是我迄今为止所做的工作:

汽车。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) 个答案

  1. # 1 楼答案

    使用org.apache.commons.lang.RandomStringUtils

    System.out.println(RandomStringUtils.randomNumeric(10));
    
  2. # 2 楼答案

    数学。random()所以这是我想要的方法,你可以简单地生成简单的数字,比如乘以10和(或不)舍入

    public static double random()

    Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range.

  3. # 3 楼答案

    这是我写的一个函数:

    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的任何输入