作者thinkniht ()
看板java
标题[问题] args[]的长度问题
时间Wed Oct 10 07:54:33 2007
我有写一个程式
执行时要输入3个参数来表示一个数学运算式子
例如:
2 + 12
30 - 2
中间固定放加减乘除符号
而我的程式中有对参数数量进行判断
if(args.length!=3)
Error();//呼叫我另外写的错误处理程式
但是我测试却发现一个问题
如果我用*号
这个判断式就会呼叫Error();
使用其他符号就正常
後来我输出了args.length
发现如果用+ - /
长度是3(正常结果)
但是用了*
长度却会变6
这是为什麽啊
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.170.49.172
1F:推 kaomark:把args都印出来看看? 是不是*被shell当成万用字元了 10/10 08:39
"是不是*被shell当成万用字元了"
这部份我看不懂耶(对於推文都不知道该回还是该编辑>"<)
args我是有印出来啦
结果应该是"*"这个参数被整个资料夹里的档案名称给取代了=.=
也就是有多少档案就有多少参数取代*号的样子
为何输入"*"会有这样的结果啊
有什麽方式可以避免这样的影响吗
※ 编辑: thinkniht 来自: 218.170.49.172 (10/10 08:59)
2F:推 kaomark:用""或''包住*试试看 10/10 09:01
用''包住的确有效...
虽然...这样就和题目意思不合了=.=
算了...反正那个题目的范例答案也是错的(会不会烂得夸张点啊XD)
不知道有没有办法正常的输入*号但是可以正常执行的方法吗
就是还是可以输入像是"2 * 3" 或者"4 * 8"之类的参数
但是又不会影响到args长度
※ 编辑: thinkniht 来自: 218.170.49.172 (10/10 09:18)
3F:推 thinkniht:另外还是不知道"被shell当成万用字元"是啥意思 10/10 09:19
4F:推 godfat:这种东西本来就应该用 "" 包起来,不是不和题目, 10/10 13:10
5F:→ godfat:应该说是题目不对,或是你太坚持了.. 合 10/10 13:11
6F:推 ogamenewbie:你要不要考虑用 x 取代 * 当输入参数... 10/10 14:06
7F:推 thinkniht:我是最近想考TQC的认证=.=这是其中术科的一个问题 10/10 18:14
8F:→ thinkniht:题库题目那样 我也不太可能随便改题目... 10/10 18:15