import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DataConverter {
/**
* Converts a string from legacy format to a modern format.
*
* @param legacyData The data in the legacy format. Example: "name: John Doe,age:30,city:New York"
* @return A map representing the data in the modern format. Returns an empty map if input is null or empty.
*/
public static Map<String, String> convertLegacyToModern(String legacyData) {
Map<String, String> modernData = new HashMap<>();
if (legacyData == null || legacyData.trim().isEmpty()) {
return modernData;
}
String[] pairs = legacyData.split(","); // Split into key-value pairs
for (String pair : pairs) {
String[] parts = pair.split(":", 2); // Split into key and value, limit to 2 splits to handle colons in values
if (parts.length == 2) {
String key = parts[0].trim();
String value = parts[1].trim();
modernData.put(key, value);
}
}
return modernData;
}
/**
* Converts a list of strings from a comma-separated format to a list of individual elements.
*
* @param commaSeparatedData A string containing comma-separated elements. Example: "item1,item2,item3"
* @return A list of strings representing the individual elements. Returns an empty list if input is null or empty.
*/
public static List<String> convertCommaSeparatedToList(String commaSeparatedData) {
List<String> list = new ArrayList<>();
if (commaSeparatedData == null || commaSeparatedData.trim().isEmpty()) {
return list;
}
String[] elements = commaSeparatedData.split(",");
for (String element : elements) {
list.add(element.trim());
}
return list;
}
/**
* Converts a string representing a date in "yyyy-MM-dd" format to "MM/dd/yyyy" format.
*
* @param dateString The date string in "yyyy-MM-dd" format.
* @return The date string in "MM/dd/yyyy" format, or null if the input is invalid.
*/
public static String convertDateFormat(String dateString) {
if (dateString == null || dateString.trim().isEmpty()) {
return null;
}
try {
String[] parts = dateString.split("-");
if (parts.length != 3) {
return null; // Invalid format
}
String year = parts[0];
String month = parts[1];
String day = parts[2];
return String.format("%02d/%02d/%s", Integer.parseInt(month), Integer.parseInt(day), year);
} catch (NumberFormatException e) {
return null; // Invalid date values
}
}
/**
* Converts a string containing a pattern to a formatted string using the pattern.
* @param data The data to format.
* @param pattern The format pattern.
* @return The formatted string.
*/
public static String formatString(String data, String pattern) {
if (data == null || pattern == null) {
return "";
}
try {
return String.format(pattern, data);
} catch (Exception e) {
return data;
}
}
public static void main(String[] args) {
// Example usage
Map<String, String> legacyData = convertLegacyToModern("name: John Doe,age:30,city:New York");
System.out.println(legacyData); // Expected: {name=John Doe, age=30, city=New York}
List<String> commaSeparatedList = convertCommaSeparatedToList("item1,item2,item3");
System.out.println(commaSeparatedList); // Expected: [
Add your comment