BigBastis Blog

Java: Validierung und strukturelle Pruefung einer IBAN

Introduction

user

Sebastian Gross

Sebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.


LATEST POSTS

Handling too long scrollspy menus 10th June, 2015

Java: Create ZIP archive 23rd March, 2015

Allgemein

Java: Validierung und strukturelle Pruefung einer IBAN

Posted on .

Als ich vor einer Weile die Anforderung bekam eine Prüfung für IBANs zu implementieren habe ich gedacht ich bin im 10 Minuten fertig, das Internet ist groß, stimmts? Google ist nur einen Klick entfernt, oder?

Nun ja, nach den ersten Suchvorgängen habe ich den einen oder anderen Beitrag gefunden der einen mehr oder weniger brauchbaren IBAN Validator verlinkt. Doch die Validierung einer IBAN ist im Grunde der einfache Teil, das etwas schwierigere Vorhaben ist aber die Strukturelle Prüfung einer IBAN.

Dazu kann man zwar einige Web-Tools finden, die das bei bedarf erledigen, aber eine ordentliche Library sucht man dafür vergeblich. (Zumindest habe ich nichts gefunden was mir wirklich gefallen hat).

Lösung: selber machen

Zwei Aufgaben waren also zu bewältigen:

  1. Validierung einer IBAN = Berechnen einer Prüfziffer mit einem ähnlichen System wie bei BAR-Codes.
  2. Strukturelle Prüfung einer IBAN = Den Aufbau der IBAN gegen ein fest definiertes Schema prüfen.

Die Aufgabe war dann doch recht schnell abgearbeitet und das Ergebnis könnt ihr euch bei Github anschauen.

Hier ein Aufrufbeispiel:

private final String VALID_IBAN_DE = "DE89 3704 0044 0532-0130 00";
private final String DE_IBAN_LENGTH = "22";
private final String DE_IBAN_STRUCTURE = "DE2!n8!n10!n";
  
@Test
public void validGermanIBANStructureCheck() {
  boolean result = false;

  try {
    result = IBANValidator.checkIbanStructure(VALID_IBAN_DE, "DE", DE_IBAN_LENGTH, DE_IBAN_STRUCTURE);
  } catch (IBANValidationException e) {}

  assertTrue(result);
}

Die drei Klassen sind in ein Maven-Projekt eingepackt, damit ihr das gleich ausprobieren könnt, ein paar UnitTests sind natürlich auch dabei.

Ich habe auch schon ein paar Kleinigkeiten festgestellt, die ich in nächster Zeit verbessern werde. Wenn ihr noch Vorschläge habt oder eine IBAN findet, die der Validator nicht korrekt behandelt, meldet euch einfach entweder hier im Kommentarbereich oder direkt im Github Bugtracker.

profile

Sebastian Gross

http://www.bigbasti.com

Sebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.

There are no comments.

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

View Comments (0) ...
Navigation