我有一个方法,它处理一行来分隔它放入一个名为 cmd 的字符串中的第一个单词,其余的它输入到参数的字符串向量中,然后将它们发送到一个函数来处理命令。由于某种原因,参数被包裹在方括号中。
static private boolean processLine(String line) {
if (debug) System.out.println("DEBUG: processLine \"" + line + "\"");
line = new String(line.trim());
String cmd = new String();
Vector<String> params = new Vector<String>(3);
boolean hasparam = false;
Scanner s = new Scanner(line).useDelimiter(" ");
int x = 0;
while (s.hasNext()) {
if (x == 0) { cmd = s.next(); }
else if (x >= 1) {
params.add(s.next());
hasparam = true;
}
x++;
}
// Next we process the command.
processCmd(cmd, params);
return exit;
}
static private void processCmd(String cmd, Vector<String> params) {
boolean invalid = false;
if (debug) {
System.out.print("DEBUG: processCmd " + cmd);
if (params.size() == 0) System.out.println();
else for (String param : params)
System.out.println(" " + params);
}
输出:
> add hosting
DEBUG: processLine "add hosting"
DEBUG: processCmd add [hosting]
我不确定为什么会出现这种行为,我想要一个解释和一个解决方案。