ich habe buch getestet und liefert mir fehler bei der zeile 53 und 58 was mache ich falsch?
gegeben ist folgende : String isbn - ist zwischen 7 und 12 Zeichen lang, darf nur aus Ziffern und
Bindestrichen bestehen, und kann mit einem „X“ enden
Java:
public class Buch{
private String titel;
private String autor;
private double preis;
private String isbn;
public Buch(String titel, String autor, double preis, String isbn)throws Exception{
setTitel(titel);
setAutor(autor);
setPreis(preis);
setIsbn(isbn);
}
public void setTitel(String titel)throws Exception{
if(titel == null){
throw new Exception("Titel darf nicht null sein");
}
if(titel.length() < 1 || titel.length() > 30){
throw new Exception("Titel darf bis 30 zeichen lang sein");
}
this.titel = titel;
}
public void setAutor(String autor)throws Exception{
if(autor == null){
throw new Exception("Autor darf nicht null sein");
}
if(autor.length() < 1 || autor.length() > 30){
throw new Exception("Autor darf bis 30 zeichen lang sein");
}
this.autor = autor;
}
public void setPreis(double preis)throws Exception{
if(preis < 3.5 || preis > 350){
throw new Exception("preis soll zwischen 3 euro und 350 euro sein");
}
this.preis = preis;
}
public void setIsbn(String isbn)throws Exception{
if(isbn.length() < 7 || isbn.length() > 12){
throw new Exception("Isbn nummer darf nur 7 bis 12 zeichen enthalten");
}
for(int i = 0 ; i < isbn.length() -1 ; i++){
char c = isbn.charAt(i);
if(!Character.isDigit(c) || Character.charAt(i) != '-'){
throw new Exception("Isbn soll bis letzte buchstaben nur ziffern oder bindestriche enthalten");
}
}
if(!Character.isDigit(isbn.charAt(isbn.length())) || Character.charAt(isbn.length()) != '-' || Character.charAt(isbn.length()) != 'X'){
throw new Exception("letzte zeichen soll entweder zahl ,bindestrich oder X sein");
}
this.isbn = isbn;
}
public String getIsbn(){
return isbn;
}
public String toString(){
return autor + " " + titel + " " + isbn + " "+ preis;
}
}
gegeben ist folgende : String isbn - ist zwischen 7 und 12 Zeichen lang, darf nur aus Ziffern und
Bindestrichen bestehen, und kann mit einem „X“ enden