Java 命令行参数问题
我的输出是:Java 命令行参数问题,java,command-line-arguments,Java,Command Line Arguments,我的输出是: java test To:a@a.com From:b@b.com Subject:hi Body:hi I see you 我的预期输出如下: number of args : 7 我能做些什么把hi I see you排除在args长度之外吗?我不想使用引号。如果你只是用引号将你的信息括起来就容易多了: number of args: 4 现在,您知道正文之后的下一个参数:将始终是全文。否则,如果要保持连接,请执行以下操作: java test To:a@a.com
java test To:a@a.com From:b@b.com Subject:hi Body:hi I see you
我的预期输出如下:
number of args : 7
我能做些什么把hi I see you排除在args长度之外吗?我不想使用引号。如果你只是用引号将你的信息括起来就容易多了:
number of args: 4
现在,您知道正文之后的下一个参数:
将始终是全文。否则,如果要保持连接,请执行以下操作:
java test To:a@a.com From:b@b.com Subject:hi Body: "hi I see you"
同样,以“Body:”
开头的参数将包含全文,但现在它的开头有“Body:”
,所以像您所做的那样,用子字符串()将其去掉
这样做的唯一缺点是,如果您的消息实际上包含双引号,则需要使用“\”
转义。但是,无论如何,您都必须对正在执行的shell执行此操作,因此这应该不会有太大的问题。如果您只将消息用引号括起来,会更容易:
number of args: 4
现在,您知道“Body:”
后面的下一个参数将始终是全文。否则,如果要保持它们的连接:
java test To:a@a.com From:b@b.com Subject:hi Body: "hi I see you"
同样,以“Body:”
开头的参数将包含全文,但现在它的开头有“Body:”
,所以像您所做的那样,用子字符串()将其去掉
唯一的缺点是,如果您的消息实际上包含双引号,则需要使用\“
转义双引号。但是,无论如何,您都必须对正在执行的shell执行此操作,因此这应该不是什么大问题。对于间距,请更改:
java test To:a@a.com From:b@b.com Subject:hi "Body:hi I see you"
到
然后,为了让FROM字段首先显示,在您编写的循环之前有另一个for循环,它只检查FROM字段。它将打印该内容,然后另一个循环将捕获并打印其余内容!:) 对于间距,请更改:
java test To:a@a.com From:b@b.com Subject:hi "Body:hi I see you"
到
然后,为了让FROM字段首先显示,在您编写的循环之前有另一个for循环,它只检查FROM字段。它将打印该内容,然后另一个循环将捕获并打印其余内容!:) 更改参数的顺序。添加空格,因为body+=args[j];删除所有我不想更改我的args的顺序,但我想先发送邮件来更改你的args的顺序。添加空格,因为body+=args[j];删除所有我不想更改参数的顺序,但我想从comes First发送邮件,我知道,但这里我不想对正文使用引号,正如您在我的代码中看到的,我是按循环进行的。但我想在我的body@jamesb-一个问题是,您会收到不一致的消息。例如,如果我写了Hello{space}{space}World
,如果没有引号,您将永远无法检测到我输入了两个空格。在我看来,如果不使用引号的话,你会让自己变得更难(代码):)
我知道,但这里我不想使用引号来表示正文,正如你在我的代码中看到的,我是按循环来做的。但我想在我的body@jamesb-一个问题是,您会收到不一致的消息。例如,如果我写了Hello{space}{space}World
,如果没有引号,您将永远无法检测到我输入了两个空格。在我看来,如果不使用引号,你会让自己更难受。
:)