Saturday, February 3, 2024

Command line Arguments in Java

I found the code I was looking for:

static class Args {

    public static Map<String, List<String>> parseArgs(String[] args, Set<String> validArgs) {
        Map<String, List<String>> map = new HashMap<>();

        List<String> options = null;

        for (String a : args) {
            if (a.charAt(0) == '-') {
                if (a.length() < 2) {
                    throw new IllegalArgumentException("Invalid Argument: " + a);
                }
                if (!validArgs.contains(a)) {
                    throw new IllegalArgumentException("Invalid Argument: " + a);
                }
                options = new ArrayList<>();
                map.put(a, options);
            } else if (options != null) {
                options.add(a);
            } else {
                throw new IllegalArgumentException("Invalid Argument: " + a);
            }
        }
        return map;
    }
}

I've modified this piece of code then was in the original post. You can pass this a Set of Strings that ensure only the correct proper argumetns are being passed into the program as to not waste the programs time trying to decide if they are proper later.

No comments:

Post a Comment

Ever feel like no one is listening?

 Ever have that feeling that no one is listening to you? Yeah, that feeling. It can be a strong feeling to have, a hurtful feeling also. The...