code: package edu.berkeley.nlp.util;
  
  import java.util.HashMap;
  import java.util.Map;
  
  /**
   * Utilities for managing command line flags and arguments.
   * 
   * @author Dan Klein
   */
  public class CommandLineUtils {
  	/**
  	 * Simple method which turns an array of command line arguments into a map,
  	 * where each token starting with a '-' is a key and the following non '-'
  	 * initial token, if there is one, is the value. For example, '-size 5
  	 * -verbose' will produce keys (-size,5) and (-verbose,null).
  	 */
  	public static Map<String, String> simpleCommandLineParser(String[] args) {
  		Map<String, String> map = new HashMap<String, String>();
  		for (int i = 0; i <= args.length; i++) {
  			String key = (i > 0 ? args[i - 1] : null);
  			String value = (i < args.length ? args[i] : null);// .toLowerCase();
  			if (key == null || key.startsWith("-")) {
  				if (value != null && value.startsWith("-"))
  					value = null;
  				if (key != null || value != null)
  					map.put(key, value);
  
  			}
  		}
  		return map;
  	}
  
  	/**
  	 * Simple method to look up a key in an argument map. Returns the
  	 * defaultValue if the argument is not specified in the map.
  	 */
  	public static String getValueOrUseDefault(Map<String, String> args,
  			String key, String defaultValue) {
  		if (args.containsKey(key))
  			return args.get(key);
  		return defaultValue;
  	}
  }
  