import java.util.HashMap;
import java.util.Map;
public class UrlParameterTransformer {
public static Map<String, String> transformUrlParams(String url) {
Map<String, String> params = new HashMap<>();
if (url == null || url.isEmpty()) {
return params; // Return empty map for null or empty URL
}
String[] pairs = url.split("&"); // Split URL into key-value pairs
for (String pair : pairs) {
if (pair == null || pair.isEmpty()) {
continue; // Skip empty pairs
}
int equalsIndex = pair.indexOf("=");
if (equalsIndex == -1) {
continue; // Skip pairs without equals sign
}
String key = pair.substring(0, equalsIndex);
String value = pair.substring(equalsIndex + 1);
if (key == null || key.isEmpty()) {
continue; // Skip pairs with empty key
}
if (value == null || value.isEmpty()) {
value = "null"; //Handle empty values as "null"
}
params.put(key, value);
}
return params;
}
public static void main(String[] args) {
//Example usage and testing
String url1 = "param1=value1¶m2=value2";
String url2 = "param1=value1¶m2";
String url3 = "param1=¶m2=value2";
String url4 = "";
String url5 = null;
String url6 = "param1=value1¶m2=value2¶m1=value3";
String url7 = "param1=value1¶m2=value2¶m1=value3¶m1=";
String url8 = "param1=value1¶m2=value2¶m1=value3&";
String url9 = "param1=value1¶m2=value2¶m1=value3¶m1=value3";
System.out.println(transformUrlParams(url1));
System.out.println(transformUrlParams(url2));
System.out.println(transformUrlParams(url3));
System.out.println(transformUrlParams(url4));
System.out.println(transformUrlParams(url5));
System.out.println(transformUrlParams(url6));
System.out.println(transformUrlParams(url7));
System.out.println(transformUrlParams(url8));
System.out.println(transformUrlParams(url9));
}
}
Add your comment