Java kullanarak Eclipse'de bazı sorunlarla karşılaşıyorum. Kodum, Almanya'daki otomobiller için B-AC 7687 B'nin Berlin için plaka numarası üretiyor. Gördüğünüz gibi, 3 karakter ve 4 tamsayı numarası, her ikisi de bir String'dir (bunu kodumda göreceksiniz). Rastgele bir lisans üretir. Bunun için math.random kullandım. Eğer kullanıcı "2" girerse, biri farklı olmayan 2 plaka numarası ister! Bu yüzden problem, her zaman rastgele prensip kullanmamı rağmen aynı plaka numarasını üretiyor. Eğer kullanıcı 2 girdiyse 2 farklı lisans olmalıdır, bunun için 2 kez üretme yöntemini veya daha fazla (kullanıcının girişine bağlı olarak) başlamalıyım. Kullanıcı girişine bağlı yöntemleri nasıl başlatabilirim? İşte benim kodudur:Yöntemi daha fazla kez çalıştırma
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();
}
}
sayıların nummer1 başlatılıyor, nummer2 ettiğiniz gibi sınıf oluşturmak zaman ... görünüyor
Vay, çalıştı. Çok teşekkür ederim. Sorun seviliyor. Seni seviyorum – Blnpwr