1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.regex.Matcher;
  6. import java.util.regex.Pattern;
  7. public class DataConverter {
  8. /**
  9. * Converts a string from legacy format to a modern format.
  10. *
  11. * @param legacyData The data in the legacy format. Example: "name: John Doe,age:30,city:New York"
  12. * @return A map representing the data in the modern format. Returns an empty map if input is null or empty.
  13. */
  14. public static Map<String, String> convertLegacyToModern(String legacyData) {
  15. Map<String, String> modernData = new HashMap<>();
  16. if (legacyData == null || legacyData.trim().isEmpty()) {
  17. return modernData;
  18. }
  19. String[] pairs = legacyData.split(","); // Split into key-value pairs
  20. for (String pair : pairs) {
  21. String[] parts = pair.split(":", 2); // Split into key and value, limit to 2 splits to handle colons in values
  22. if (parts.length == 2) {
  23. String key = parts[0].trim();
  24. String value = parts[1].trim();
  25. modernData.put(key, value);
  26. }
  27. }
  28. return modernData;
  29. }
  30. /**
  31. * Converts a list of strings from a comma-separated format to a list of individual elements.
  32. *
  33. * @param commaSeparatedData A string containing comma-separated elements. Example: "item1,item2,item3"
  34. * @return A list of strings representing the individual elements. Returns an empty list if input is null or empty.
  35. */
  36. public static List<String> convertCommaSeparatedToList(String commaSeparatedData) {
  37. List<String> list = new ArrayList<>();
  38. if (commaSeparatedData == null || commaSeparatedData.trim().isEmpty()) {
  39. return list;
  40. }
  41. String[] elements = commaSeparatedData.split(",");
  42. for (String element : elements) {
  43. list.add(element.trim());
  44. }
  45. return list;
  46. }
  47. /**
  48. * Converts a string representing a date in "yyyy-MM-dd" format to "MM/dd/yyyy" format.
  49. *
  50. * @param dateString The date string in "yyyy-MM-dd" format.
  51. * @return The date string in "MM/dd/yyyy" format, or null if the input is invalid.
  52. */
  53. public static String convertDateFormat(String dateString) {
  54. if (dateString == null || dateString.trim().isEmpty()) {
  55. return null;
  56. }
  57. try {
  58. String[] parts = dateString.split("-");
  59. if (parts.length != 3) {
  60. return null; // Invalid format
  61. }
  62. String year = parts[0];
  63. String month = parts[1];
  64. String day = parts[2];
  65. return String.format("%02d/%02d/%s", Integer.parseInt(month), Integer.parseInt(day), year);
  66. } catch (NumberFormatException e) {
  67. return null; // Invalid date values
  68. }
  69. }
  70. /**
  71. * Converts a string containing a pattern to a formatted string using the pattern.
  72. * @param data The data to format.
  73. * @param pattern The format pattern.
  74. * @return The formatted string.
  75. */
  76. public static String formatString(String data, String pattern) {
  77. if (data == null || pattern == null) {
  78. return "";
  79. }
  80. try {
  81. return String.format(pattern, data);
  82. } catch (Exception e) {
  83. return data;
  84. }
  85. }
  86. public static void main(String[] args) {
  87. // Example usage
  88. Map<String, String> legacyData = convertLegacyToModern("name: John Doe,age:30,city:New York");
  89. System.out.println(legacyData); // Expected: {name=John Doe, age=30, city=New York}
  90. List<String> commaSeparatedList = convertCommaSeparatedToList("item1,item2,item3");
  91. System.out.println(commaSeparatedList); // Expected: [

Add your comment