我有一个字符串数组,其中包含一个单独的命令 - 每个参数位于不同的单元格中。
我想要一种获取字符串数组并使用它来准备语义合法的完整命令的方法(即处理特殊字符,例如 <space>
、大括号等)。然后,它应该将完整的命令作为一个字符串返回
这是我想要的用法的一个非常简单的示例(如果我有 createCommand()
方法):
String[] cmdParts = {"ls", "-l", "/tmp /home"};
String cmd = createCommand(cmdParts);
在上面的例子中,我期望 cmd
包含字符串 ls -l "/tmp /home"
有没有一种方法可以做到这一点,或者类似的方法?
最佳答案
您可以循环遍历数组并轻松地自己完成。我无法立即想到任何事情
String createCommand(String[] cmdParts) {
StringBuilder sb = new StringBuilder()
for(String cmdPart : cmdParts) {
if (sb.length() > 0) {
sb.append(" ");
}
sb.append(cmdPart);
}
return sb.toString();
}
尽管它不会留下尾随或前导空格。
另请注意:
{"ls", "-l", "/tmp /home"}
不会导致
ls -l "/tmp /home"
您需要将转义的引号添加到最后一个字符串。
{"ls", "-l", "\"/tmp /home\""}
关于Java:从字符串数组创建命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22665806/