1. import java.util.HashMap;
  2. import java.util.Map;
  3. public class UrlParameterTransformer {
  4. public static Map<String, String> transformUrlParams(String url) {
  5. Map<String, String> params = new HashMap<>();
  6. if (url == null || url.isEmpty()) {
  7. return params; // Return empty map for null or empty URL
  8. }
  9. String[] pairs = url.split("&"); // Split URL into key-value pairs
  10. for (String pair : pairs) {
  11. if (pair == null || pair.isEmpty()) {
  12. continue; // Skip empty pairs
  13. }
  14. int equalsIndex = pair.indexOf("=");
  15. if (equalsIndex == -1) {
  16. continue; // Skip pairs without equals sign
  17. }
  18. String key = pair.substring(0, equalsIndex);
  19. String value = pair.substring(equalsIndex + 1);
  20. if (key == null || key.isEmpty()) {
  21. continue; // Skip pairs with empty key
  22. }
  23. if (value == null || value.isEmpty()) {
  24. value = "null"; //Handle empty values as "null"
  25. }
  26. params.put(key, value);
  27. }
  28. return params;
  29. }
  30. public static void main(String[] args) {
  31. //Example usage and testing
  32. String url1 = "param1=value1&param2=value2";
  33. String url2 = "param1=value1&param2";
  34. String url3 = "param1=&param2=value2";
  35. String url4 = "";
  36. String url5 = null;
  37. String url6 = "param1=value1&param2=value2&param1=value3";
  38. String url7 = "param1=value1&param2=value2&param1=value3&param1=";
  39. String url8 = "param1=value1&param2=value2&param1=value3&";
  40. String url9 = "param1=value1&param2=value2&param1=value3&param1=value3";
  41. System.out.println(transformUrlParams(url1));
  42. System.out.println(transformUrlParams(url2));
  43. System.out.println(transformUrlParams(url3));
  44. System.out.println(transformUrlParams(url4));
  45. System.out.println(transformUrlParams(url5));
  46. System.out.println(transformUrlParams(url6));
  47. System.out.println(transformUrlParams(url7));
  48. System.out.println(transformUrlParams(url8));
  49. System.out.println(transformUrlParams(url9));
  50. }
  51. }

Add your comment