डेटा टाइप सत्यापन

Java में डेटा क्लीनिंग

Dennis Lee

Software Engineer

डेटा टाइप क्यों जाँचें?

  • बाहरी डेटा सोर्स से टेक्स्ट पार्स करना पड़ता है
  • अमान्य डेटा टाइप runtime errors कराते हैं
  • सही validation से क्रैश रुकते हैं

 

String priceText = "$30.61";
double price = Double.parseDouble(priceText);  // Fails: $ not valid in number
Exception in thread "main" java.lang.NumberFormatException
Java में डेटा क्लीनिंग

न्यूमेरिक टेक्स्ट का validation

// Utility for number validation
import org.apache.commons.lang3.math.NumberUtils; 
String reviewCountText = "165";
System.out.println(NumberUtils.isParsable(reviewCountText));
true
String priceText = "$30.61"; // Invalid number
System.out.println(NumberUtils.isParsable(priceText)); // false: has $ symbol
false
Java में डेटा क्लीनिंग

न्यूमेरिक टेक्स्ट पार्स करना

private static String validateNumeric(String value) {
    if (NumberUtils.isParsable(value)) return value;  // Return if valid number
    throw new IllegalArgumentException("Invalid: " + value);  // Else throw error
}

int reviews = Integer.parseInt(validateNumeric("165"));  // Validate then parse

// Remove $ first double price = Double.parseDouble(validateNumeric("$30.61".replace("$", ""))); System.out.println("reviews: " + reviews + "\nprice in $: " + price);
reviews: 165
price in $: 30.61
Java में डेटा क्लीनिंग

डेट फ़ॉर्मैट का validation

import java.time.format.DateTimeFormatter; // For date pattern formatting
private static LocalDate parseDate(String dateStr) {
    DateTimeFormatter format = DateTimeFormatter.ofPattern("M/d/yy");

return LocalDate.parse(dateStr, format); // Convert string to LocalDate }
LocalDate date = parseDate("1/10/23"); // "1/10/23" converts to 2023-01-10 System.out.println("Date: " + date);
Date: 2023-01-10
Java में डेटा क्लीनिंग

न्यूमेरिक और डेट validation साथ में

private static double parsePrice(String price) {
    return Double.parseDouble(validateNumeric(price.replace("$", "")); // Remove $
}


// Convert CSV fields to BookSales public static BookSales parseSalesData(String[] fields) { String title = fields[0]; LocalDate publishDate = parseDate(fields[1]); // Custom date parsing int reviews = Integer.parseInt(validateNumeric(fields[2])); double rating = Double.parseDouble(validateNumeric(fields[3])); double price = parsePrice(fields[4]); // Handle currency format return new BookSales(title, publishDate, reviews, rating, price); }
Java में डेटा क्लीनिंग

CSV फाइलें सुरक्षित रूप से पढ़ना

List<BookSales> sales = new ArrayList<>(); // Store BookSales objects


try (BufferedReader reader = new BufferedReader(new FileReader("book_sales.csv"))) {
String line = reader.readLine(); // Skip header row
while ((line = reader.readLine()) != null) { // Read until end of file String[] fields = line.split(","); // Split CSV line into array sales.add(parseSalesData(fields)); // Convert fields to BookSales object } }
sales.forEach(System.out::println); // Print each sale
BookSales[title=Python Crash Course, publishDate=2023-01-10, 
reviewCount=165, rating=4.8, price=30.61]
Java में डेटा क्लीनिंग

सार: डेटा टाइप सत्यापन

  • Runtime errors रोकने के लिए पार्स करने से पहले टेक्स्ट validate करें
  • मुख्य imports
    • org.apache.commons.lang3.math.NumberUtils
    • java.time.format.DateTimeFormatter
  • न्यूमेरिक स्ट्रिंग जाँचने के लिए NumberUtils.isParsable() उपयोग करें
  • कई डेट फ़ॉर्मैट हैंडल करने के लिए DateTimeFormatter उपयोग करें
  • डेटा टाइप issues पकड़ने से data integrity बनी रहती है
Java में डेटा क्लीनिंग

अभ्यास करते हैं!

Java में डेटा क्लीनिंग

Preparing Video For Download...