hi an allen,
ich möchte bitten ob jemand zeit hat einen blick auf meine Id und namensüberprüfungen zu werfen.Kann man Id überprufung noch kompakter machen?
danke vielmals
MFG nata
ich möchte bitten ob jemand zeit hat einen blick auf meine Id und namensüberprüfungen zu werfen.Kann man Id überprufung noch kompakter machen?
Java:
public class Produkt {
private String name;
private String id;
public Produkt(String name, String id) {
setName(name);
setId(id);
}
public void setName(String name)throws Exception {
// TODO: Überprüfungen einbauen - dazu für name und id setter schreiben
// name: darf nicht null oder leer sein
if (name == null || name.length() == 0){
throw new Exception("Produktname darf nicht null oder leer sein");
}
this.name = name;
}
public void setId(String id ) throws Exception {
// id: hat den aufbau AAA-1111-AAA: 3 Buchstaben (großes A bis großes Z),
// Bindestrich, 4 Ziffern, Bindestrich, noch einmal 3 Buchstaben
if (id == null || id.lengh() != 12){
throw new Exception ("id darf nicht null sein");
}
for (int i=0 ; i < 3 ; i ++ ){
char c = id.charAt(i);
if (!Character.isLetter(c) || !Character.isUpperCase(c)) {
throw new Exception("die erste id zeichen sollen buchstaben sein");
}
}
if(id.charAt(3) != '-'|| id.charAt(8) != '-'){
throw new Exception("die 4. und 9. zeichen mussen bindestrich sein");
}
for(int i=4 ; i < 8 ; i ++ ){
char c = id.charAt(i);
if (!Character.isDigit(c) ) {
throw new Exception("5. bis 8. zeichen solle zifer sein");
}
}
for(int i=9 ; i < 11 ; i ++ ){
char c = id.charAt(i);
if (!Character.isLetter(c) || !Character.isUpperCase(c)) {
throw new Exception("die letzte 3 zeichen sollen auch grosse buchstaben sein");
}
}
this.id = id;
}
public String getId() {
return id;
}
public String toString() {
return id + ": " + name;
}
}
danke vielmals
MFG nata