1. import java.util.HashMap;
  2. import java.util.Map;
  3. public class ArgumentStripper {
  4. /**
  5. * Strips metadata from CLI arguments for validation.
  6. * Supports older Java versions by using String array.
  7. *
  8. * @param args The command-line arguments.
  9. * @return A map containing only the argument values, or an empty map if args is null.
  10. */
  11. public static Map<String, String> stripMetadata(String[] args) {
  12. if (args == null) {
  13. return new HashMap<>(); // Return empty map for null input
  14. }
  15. Map<String, String> strippedArgs = new HashMap<>();
  16. for (int i = 0; i < args.length; i++) {
  17. String arg = args[i];
  18. if (arg != null && !arg.startsWith("-")) { // Skip metadata arguments (starting with "-")
  19. strippedArgs.put(arg, ""); // Store the argument as the key and empty string as value
  20. }
  21. }
  22. return strippedArgs;
  23. }
  24. public static void main(String[] args) {
  25. String[] args1 = {"-name", "John Doe", "-age", "30", "--city", "New York"};
  26. Map<String, String> stripped1 = stripMetadata(args1);
  27. System.out.println(stripped1); // Expected output: {name=John Doe, age=30, city=New York}
  28. String[] args2 = {"-name", "Jane", "-age", "25"};
  29. Map<String, String> stripped2 = stripMetadata(args2);
  30. System.out.println(stripped2); // Expected output: {name=Jane, age=25}
  31. String[] args3 = null;
  32. Map<String, String> stripped3 = stripMetadata(args3);
  33. System.out.println(stripped3); // Expected output: {}
  34. String[] args4 = {"some_value"};
  35. Map<String, String> stripped4 = stripMetadata(args4);
  36. System.out.println(stripped4); // Expected output: {some_value= }
  37. }
  38. }

Add your comment