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