读书人

DELPHI 不等于,该怎么解决

发布时间: 2012-02-24 16:30:39 作者: rapoo

DELPHI 不等于
DELPHI 中判断我的一个字符串,多个不等于怎么精简,说得不清楚,我举例子:

比如说我的
begin
if str<>'a' or str<>'b' or str<>'c' or str<>'d' then begin
showmessage('yes');
end;

--------------------------------------

怎么样可以去掉中间的"str<>" 用一个精简的方法来写?

过年了,祝大家新快乐,龙年吉祥。

[解决办法]
就你这个例子而言可以这样

永远都是真,(Str<>'a') or (Str<>'b') 无论Str是什么,都是真

某些情况,可以用 Str[1]<'a',Str[1]>'d'等等情况来排除连续的
[解决办法]
mstr := ',a,b,c,d,';
if pos(','+str+',',mstr)=0 then
begin
showmessage('yes');
end;

例子中用逗号做分隔,如果判断的字符串中含有逗号,则不能使用它了,选一个不可能出现的字符即可,
比如:~ ` 等等,或者全角的,再或者多个字符的组合
[解决办法]
论执行效率及可读性,肯定都不如原代码好,只是写起来方便些而已
[解决办法]
Str not in ('a','b','c','d')
[解决办法]
字符串不能用in,楼上

读书人网 >.NET

热点推荐