Dies ist mein erstes Mal hier im Forum und ich hoffe, hier eine Lösung für mein Problem zu finden.
Ich habe mich vor kurzen dazu entschieden, Java zu lernen. Ich habe schon etwas Erfahrung mit PHP und Javascript. Ich habe die Webseite Javala - Java Learning Environment gefunden welche mir bis jetzt einen guten Einstieg bot.
Leider hänge ich an einer Aufgabe welche, trotz meiner Meinung korrekten Codes, nicht funktionieren will.
Es handelt sich dabei um die Aufgabe unter Classes-->Static method.
Folgende Aufgabenstellung:
Implement the static method isLicenseNumber(String s) that returns true if the given string is a legal (Finnish) license plate number, otherwise false. To verify legality, it's enough to check that:
- the string's length is 7 AND
- a dash '-' is found at index 3 (123-ABC is considered legal)
packagecom.javala.exercise;publicclassStaticMethodExercise{publicstaticbooleanisLicenseNumber(String s){int result =0;boolean legal =false;if(s.length()==7){if(s.charAt(3)=='-'){
result++;}}if(result>0){
legal =true;}return legal;}
Dieser Lösungsansatz gibt mir die Fehlermeldung:
java.lang.NullPointerException
at com.javala.exercise.StaticMethodExercise.isLicenseNumber(StaticMethodExercise.java:61)
at com.javala.exercise.StaticMethodExercise.runExercise(StaticMethodExercise.java:46)
at com.javala.exercise.ExerciseMain.main(ExerciseMain.java:183)
Wenn du schon Fehlermeldung mit Zeilen hinschreibt, dann solltest du auch die dazugehörende Zeilen angeben
Darüber hinaus lässt sich das so nicht pauschal nicht sagen, du musst mehr Code geben, vor allem wie du die Methode aufrufst.
@XHelp
Danke für deine Antwort. Den Code kann man auf der Seite gleich ausführen. Das ist die Fehlermeldung welche ich bekommen habe. Leider ohne Zeilennummer o.Ä
@Marco13
Vielen Dank. Deine Lösung hat funktioniert. Könntest du mir eventuell mit einfachen Worten erklären warum? Warum der String teilweise null ist? Hat das was mit dem Programm zu tun welches diese Methode aufruft? Ist dein Code etwas, was man generell benützt?
Wie erwähnt bin ich ein totaler Anfänger und würde gerne verstehen wie und warum ich Probleme gelöst habe
@Marco13
Vielen Dank. Deine Lösung hat funktioniert. Könntest du mir eventuell mit einfachen Worten erklären warum? Warum der String teilweise null ist? Hat das was mit dem Programm zu tun welches diese Methode aufruft? Ist dein Code etwas, was man generell benützt?
String x;String y ="333-333"System.out.println(isLicenseNumber(x));System.out.println(isLicenseNumber(y));
Wirst du sehen, dass in der 3. Zeile der Fehler auftritt, da x ja nicht initialisiert wird, y hingegen schon. Und solche Fehler sollten deshalb eigentlich nicht auftreten, da du ja nichts leeres prüfen willst. Da ist ja von vornherein klar, dass es nicht zutrifft. Davon ausgehend, dass der Benutzer etwas falsches eingibt, müsste man diesem das halt mitteilen.
Nein, falsch. pro2, in diesem Fall kompiliert das Programm gar nicht. Aber mit [c]String x = null;[/c] würdest du dieses Ergebnis erzielen.
Edit: hab deinen Kommentar unten nicht gelesen. Nichtsdesto trotz gibt es - wie du auch sagt - einen Compilerfehler und kann damit das Problem des TO gar nicht wiederspiegeln. Mit [c]= null[/c] aber schon