Java 多次启动一个方法

Java 多次启动一个方法,java,methods,Java,Methods,我在使用Java的Eclipse中遇到了一些问题。我的代码为德国的汽车生成车牌号,比如B-AC 7687 B是柏林的,所以正如您所看到的,3个字符和4个整数,两者一起是一个字符串(您将在我的代码中看到)。它随机生成一个许可证。我用了数学,随机的。如果用户输入“2”,则表示需要两个不同的车牌号!这就是问题所在,虽然我使用了随机原则,但它总是生成相同的车牌号。如果用户输入2,则应该有2个不同的许可证,为此,我必须启动generate方法2次,甚至更多次(取决于用户的输入)。如何启动依赖于用户输入的方

我在使用Java的Eclipse中遇到了一些问题。我的代码为德国的汽车生成车牌号,比如B-AC 7687 B是柏林的,所以正如您所看到的,3个字符和4个整数,两者一起是一个字符串(您将在我的代码中看到)。它随机生成一个许可证。我用了数学,随机的。如果用户输入“2”,则表示需要两个不同的车牌号!这就是问题所在,虽然我使用了随机原则,但它总是生成相同的车牌号。如果用户输入2,则应该有2个不同的许可证,为此,我必须启动generate方法2次,甚至更多次(取决于用户的输入)。如何启动依赖于用户输入的方法?这是我的密码:

import java.util.*;

public class Kennzeichen {

char[] alphabet = new char[26];
char[] nummern = new char[10];

String teilstring;
String teilnummern1, teilnummern2, teilnummern3, teilnummern4, teilnummern;
String finale;
int zahl = (int) ((Math.random()) * 25 + 1);
int zahl1 = (int) ((Math.random()) * 25 + 1);
int nummer1 = (int) (Math.random() * 9 + 1);
int nummer2 = (int) (Math.random() * 9 + 1);
int nummer3 = (int) (Math.random() * 9 + 1);
int nummer4 = (int) (Math.random() * 9 + 1);
char a = 65; //ascii
char b = 48; // asci
int zahler = 0;
Scanner s = new Scanner(System.in);
int eineZahl = s.nextInt();

public void arrayalphabet() { // generates an array alphabet A-Z

    for (int i = 0; i < alphabet.length; i++, a++) {
        alphabet[i] = a;
    }

}

public void arraynummern() { //generates numbers between 0 and 9
    for (int i = 0; i < nummern.length; i++, b++) {
        nummern[i] = b;
    }
}

public String generierekennzeichen() { // first char must be B       therefore alphabet[1]

    return(teilstring = alphabet[1] + "" + alphabet[zahl] + "" + alphabet[zahl1]);

}

public String generierenummern() { // 4 numbers are generated and returned as total
    teilnummern1 = nummern[nummer1] + "";
    teilnummern2 = nummern[nummer2] + "";
    teilnummern3 = nummern[nummer3] + "";
    teilnummern4 = nummern[nummer4] + "";
    return(teilnummern = teilnummern1 + teilnummern2 + teilnummern3 + teilnummern4 + "");

}

public void print() { //prints the total license such as B-AD 7645
    System.out.println(finale = teilstring + "-" + teilnummern);
}

public void erzeugestack() { //using stack, not that important(just practise
    Stack<String> s = new Stack<String>();
    s.push(finale);

}

public void Abfrage() { // eineZahl is the input of the user, e.g 2
    for(int i=0; i<eineZahl;i++){
        generierekennzeichen();
        generierenummern();
        print();
    }
}

public static void main(String[] args) {
    Kennzeichen kennzeichen = new Kennzeichen();
    kennzeichen.arrayalphabet();
    // kennzeichen.generierekennzeichen();
    kennzeichen.arraynummern();
    // kennzeichen.generierenummern();
    kennzeichen.Abfrage();
    kennzeichen.erzeugestack();
}
import java.util.*;
公开课{
字符[]字母表=新字符[26];
char[]numern=新字符[10];
弦环;
字符串TEILNUMERN1、TEILNUMERN2、TEILNUMERN3、TEILNUMERN4、TEILNUMERN;
弦乐终曲;
int zahl=(int)((Math.random())*25+1);
int zahl1=(int)((Math.random())*25+1);
int nummer1=(int)(Math.random()*9+1);
int numer2=(int)(Math.random()*9+1);
int nummer3=(int)(Math.random()*9+1);
int numer4=(int)(Math.random()*9+1);
字符a=65;//ascii
字符b=48;//asci
int-zahler=0;
扫描仪s=新的扫描仪(System.in);
int eineZahl=s.nextInt();
public void arrayalphabet(){//生成数组字母A-Z
for(int i=0;i对于(int i=0;i,在创建类时,似乎正在初始化数字nummer1、nummer2…。因此,它们不会在每次调用该方法时更改。如果仅使用
numern[(int)(Math.random()*9+1)]
nummern[nummer1]
不同的是,
nummern[nummer2]
则每个编号应该不同

public String generierenummern() { // 4 numbers are generated and returned as total
teilnummern1 = nummern[(int) (Math.random() * 9 + 1)] + "";
teilnummern2 = nummern[(int) (Math.random() * 9 + 1)] + "";
teilnummern3 = nummern[(int) (Math.random() * 9 + 1)] + "";
teilnummern4 = nummern[(int) (Math.random() * 9 + 1)] + "";
return(teilnummern = teilnummern1 + teilnummern2 + teilnummern3 + teilnummern4 + ""); 

然后你也应该对字母做同样的事情。

你用来生成图版的索引被分配了一次(在你安装类的时候)因此,所有对plate生成方法的调用都是相同的。与其首先初始化这些变量,不如尝试在方法
generierekennzeichen()
generierenumern()
中定位它们,如下所示:

        import java.util.*;

        public class Kennzeichen {

        char[] alphabet = new char[26];
        char[] nummern = new char[10];

        String teilstring;
        String teilnummern1, teilnummern2, teilnummern3, teilnummern4, teilnummern;
        String finale;

        char a = 65; //ascii
        char b = 48; // asci
        int zahler = 0;
        Scanner s = new Scanner(System.in);
        int eineZahl = s.nextInt();

        public void arrayalphabet() { // generates an array alphabet A-Z
            for (int i = 0; i < alphabet.length; i++, a++) {
                alphabet[i] = a;
            }
        }

        public void arraynummern() { //generates numbers between 0 and 9
            for (int i = 0; i < nummern.length; i++, b++) {
                nummern[i] = b;
            }
        }

        public String generierekennzeichen() { // first char must be B          therefore     alphabet[1]
           int zahl = (int) ((Math.random()) * 25 + 1);
           int zahl1 = (int) ((Math.random()) * 25 + 1);
           return(teilstring = alphabet[1] + "" + alphabet[zahl] + "" + alphabet[zahl1]);

    }

    public String generierenummern() { // 4 numbers are generated and returned as total

        int nummer1 = (int) (Math.random() * 9 + 1);
        int nummer2 = (int) (Math.random() * 9 + 1);
        int nummer3 = (int) (Math.random() * 9 + 1);
        int nummer4 = (int) (Math.random() * 9 + 1);
        teilnummern1 = nummern[nummer1] + "";
        teilnummern2 = nummern[nummer2] + "";
        teilnummern3 = nummern[nummer3] + "";
        teilnummern4 = nummern[nummer4] + "";
        return(teilnummern = teilnummern1 + teilnummern2 + teilnummern3 + teilnummern4 + "");

    }

    public void print() { //prints the total license such as B-AD 7645
        System.out.println(finale = teilstring + "-" + teilnummern);
    }

    public void erzeugestack() { //using stack, not that important(just practise
        Stack<String> s = new Stack<String>();
        s.push(finale);

    }

    public void Abfrage() { // eineZahl is the input of the user, e.g 2
        for(int i=0; i<eineZahl;i++){
            generierekennzeichen();
            generierenummern();
            print();
        }
    }

    public static void main(String[] args) {
        Kennzeichen kennzeichen = new Kennzeichen();
        kennzeichen.arrayalphabet();
        // kennzeichen.generierekennzeichen();
        kennzeichen.arraynummern();
        // kennzeichen.generierenummern();
        kennzeichen.Abfrage();
        kennzeichen.erzeugestack();
    }
import java.util.*;
公开课{
字符[]字母表=新字符[26];
char[]numern=新字符[10];
弦环;
字符串TEILNUMERN1、TEILNUMERN2、TEILNUMERN3、TEILNUMERN4、TEILNUMERN;
弦乐终曲;
字符a=65;//ascii
字符b=48;//asci
int-zahler=0;
扫描仪s=新的扫描仪(System.in);
int eineZahl=s.nextInt();
public void arrayalphabet(){//生成数组字母A-Z
for(int i=0;i因为(inti=0;我知道,这很有效。非常感谢。问题是爱。爱你