public class CommandParser
{
public static void main(String[] args)
{
CommandParser cp = new CommandParser();
String res = null;
res = cp.parseCommand("-name jack -age 20 -address \"HangZhou ZheDa Road\"");
System.out.println(res);
res = cp.parseCommand(" -name jack -age 20 -address \"HangZhou ZheDa Road\"");
System.out.println(res);
res = cp.parseCommand("-name jack -age 20 -address \"HangZhou ZheDa Road\"");
System.out.println(res);
res = cp.parseCommand("-name jack -age 20 -address \"HangZhou ZheDa Road \" ");
System.out.println(res);
}
String parseCommand(String com)
{
//分解成多个参数-值对
String pars[] = com.split("-");
StringBuilder sb = new StringBuilder();
sb.append("[-");
String words[] = null;
//循环抽取其中的命令和值
for (int i = 0; i < pars.length; i++)
{
String tmp = pars.trim();
//判断这个值是否是非空格
if (tmp != null && tmp.length() > 0)
{
int j = tmp.indexOf(' ');
int k = j;
sb.append(tmp.substring(0, j));
sb.append(' ');
//找到下一个空格的地方
while (k < tmp.length() && tmp.charAt(k) == ' ')
{
k++;
}
sb.append(tmp.substring(k));
if (i != pars.length - 1)
{
sb.append(',');
}
else
{
sb.append(']');
}
}
}
return sb.toString();
}
}