Bereichsvalidierung

Datenbereinigung in Java

Dennis Lee

Software Engineer

Schoko-Umsatzdatensatz

  • Wir arbeiten im Kapitel durchgehend mit einem Schoko-Umsatzdatensatz
  • Wir ändern Spalten wie Betrag und Datum, um Datenvalidierung zu zeigen

 

Verkäufer/in Land Produkt Datum Betrag Kartons versandt
James Rudeforth UK Mint Chip Choco 4-Jan-22 $5,320 180
Van Tuxwell Indien 85% Dark Bars 1-Aug-22 $7,896 94
Gigi Bohling Indien Peanut Butter Cubes 7-Jul-22 $4,501 91
Jan Morforth Australien Peanut Butter Cubes 27-Apr-22 $12,726 342
Jehu Fischer UK Peanut Butter Cubes 24-Feb-22 $13,685 184
Datenbereinigung in Java

Warum wir Bereichsvalidierung brauchen

// Diese Umsätze und Daten wurden aus unserem Datensatz extrahiert
List<Double> salesAmounts = Arrays.asList(5320.0, 7896.0, 4501.0,
                                          12726.0, 13685.0);
List<String> saleDates = Arrays.asList("4-Jan-22", "1-Aug-22", "7-Jul-22", 
                                       "27-Apr-22", "24-Feb-22");

System.out.println("Sales amounts: " + salesAmounts);
System.out.println("Sale dates: " + saleDates);
Sales amounts: [5320.0, 7896.0, 4501.0, 12726.0, 13685.0]
Sale dates: [4-Jan-22, 1-Aug-22, 7-Jul-22, 27-Apr-22, 24-Feb-22]
Datenbereinigung in Java

Grenzen des Bereichs finden

// Kleinsten Umsatz ermitteln
Double minSale = Collections.min(salesAmounts);
// Größten Umsatz ermitteln
Double maxSale = Collections.max(salesAmounts);

System.out.println("Range: $" + minSale + " - $" + maxSale);
Range: $4501.0 - $13685.0
Datenbereinigung in Java

Gültigen Bereich festlegen

// Umsatz darf nicht kleiner als 0.0 sein
Double lowerThreshold = 0.0;
// Umsatz darf nicht größer als 15000.0 sein
Double upperThreshold = 15000.0;

for (Double amount : salesAmounts) { // Prüfen, dass jeder Betrag im Bereich liegt if (amount >= lowerThreshold && amount <= upperThreshold) { System.out.println(amount + " liegt im Bereich"); } }
Datenbereinigung in Java

Gültigen Bereich festlegen: Ausgaben

5320.0 liegt im Bereich
7896.0 liegt im Bereich
4501.0 liegt im Bereich
12726.0 liegt im Bereich
13685.0 liegt im Bereich
Datenbereinigung in Java

Bereichskategorien definieren

import org.apache.commons.lang3.Range;
// Kategorie Niedrige Umsätze: $0 - $5000
Range<Double> lowSales = Range.between(0.0, 5000.0);
// Kategorie Mittlere Umsätze: $5000 - $10000
Range<Double> mediumSales = Range.between(5000.0, 10000.0);
// Kategorie Hohe Umsätze: $10000 - $15000
Range<Double> highSales = Range.between(10000.0, 15000.0);
Datenbereinigung in Java

Bereichskategorien prüfen

for (Double amount : salesAmounts) {
    if (lowSales.contains(amount)) { // Liegt amount im Bereich „Niedrig“?
        System.out.println("$" + amount + " - Niedrige Umsätze");
    } else if (mediumSales.contains(amount)) { // Liegt amount im Bereich „Mittel“?
        System.out.println("$" + amount + " - Mittlere Umsätze");
    } else if (highSales.contains(amount)) { // Liegt amount im Bereich „Hoch“?
        System.out.println("$" + amount + " - Hohe Umsätze");
    } else { // Liegt amount außerhalb des erwarteten Bereichs?
        System.out.println("$" + amount + " - Außerhalb des erwarteten Bereichs");
    }
}
Datenbereinigung in Java

Bereichskategorien prüfen: Ausgaben

Umsatzkategorisierung:
$5320.0 - Mittlere Umsätze
$7896.0 - Mittlere Umsätze
$4501.0 - Niedrige Umsätze
$12726.0 - Hohe Umsätze
$13685.0 - Hohe Umsätze
Datenbereinigung in Java

Daten validieren

// d-MMM-yy: Tag (d), abgekürzter Monatsname (MMM), zweistellige Jahreszahl (yy)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yy");
LocalDate startDate = LocalDate.of(2022, 1, 1); // Beginn 2022
LocalDate endDate = LocalDate.of(2022, 12, 31); // Ende 2022

for (String dateStr : saleDates) { LocalDate saleDate = LocalDate.parse(dateStr, formatter);
// Gültig sind Daten nach startDate und vor endDate boolean isValid = saleDate.isAfter(startDate) && saleDate.isBefore(endDate); System.out.println(dateStr + " ist gültig: " + isValid); }
Datenbereinigung in Java

Daten validieren: Ausgaben

4-Jan-22 ist gültig: true
1-Aug-22 ist gültig: true
7-Jul-22 ist gültig: true
27-Apr-22 ist gültig: true
24-Feb-22 ist gültig: true
Datenbereinigung in Java

Alles zusammenführen

  • Wichtiger Import: org.apache.commons.lang3.Range
  • Min und Max holen: Collections.min(salesAmounts), Collections.max(salesAmounts)
  • Bereichskategorien definieren: Range.between(0.0, 5000.0)
  • Bereichskategorien prüfen: lowSales.contains(amount)
  • Daten validieren: saleDate.isAfter(startDate), saleDate.isBefore(endDate)
Datenbereinigung in Java

Lass uns üben!

Datenbereinigung in Java

Preparing Video For Download...