package com.zerohighdef.geoffrey.Objects; import java.text.ParseException; import java.util.LinkedList; import java.util.List; public class GeoffreyUtil { public static List parseArgs(String [] args) throws ParseException { LinkedList parsedArgs = new LinkedList<>(); boolean parsingMultiWordArg = false; StringBuilder parsedArg = new StringBuilder(); for (String arg: args) { boolean foundEndOfString = false; if (!parsingMultiWordArg) { parsedArg = new StringBuilder(); } for (char c: arg.toCharArray()) { if (c == '"') { if (parsingMultiWordArg) { foundEndOfString = true; parsingMultiWordArg = false; } else { parsingMultiWordArg = true; } } } parsedArg.append(arg); if (parsingMultiWordArg) { parsedArg.append(" "); } if (foundEndOfString || !parsingMultiWordArg) { parsedArgs.add(parsedArg.toString().replace("\"", "")); } } if (parsingMultiWordArg) { throw new ParseException("No matching \" found", 0); } return parsedArgs; } }