Java 用作命令行参数时保留字符串中的空白
我正在尝试用Java编写一个GUI,它可以将用户输入发送到其他文件进行处理,这是使用命令行参数完成的。除非用户试图发送带有空格的字符串,否则这可以正常工作,因为它们被解释为单独的参数。以下是一个例子:Java 用作命令行参数时保留字符串中的空白,java,whitespace,args,Java,Whitespace,Args,我正在尝试用Java编写一个GUI,它可以将用户输入发送到其他文件进行处理,这是使用命令行参数完成的。除非用户试图发送带有空格的字符串,否则这可以正常工作,因为它们被解释为单独的参数。以下是一个例子: public String exampleMethod(String userInput, String fileName) { try { String output = ""; Process p = Runtime.getRuntime()
public String exampleMethod(String userInput, String fileName)
{
try
{
String output = "";
Process p = Runtime.getRuntime().exec("./directory/" + fileName + " " + userInput);
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null)
{
output = output + line;
}
return output;
}
catch (IOException e)
{
e.printStackTrace();
return "ERROR: I/O Exception";
}
任何帮助都将不胜感激空格用于分隔参数。用户应该使用引号(“)。您可以使用Java的内置代码来完成此操作。类似于:
Process p = new ProcessBuilder("./directory/" + fileName, userInput).start();
或者,要获得更健壮的功能,请查看框架,尽管所需的代码有点冗长。我真的觉得自己像个白痴,花了这么长时间试图解决我从未遇到的问题,谢谢!