如何检查Erlang中是否有许多字符串不为空?

时间:2012-08-22 00:59:35

标签: string erlang conditional

我有S1S2S3,我想做类似的事情:

if S1 != "" and S2 != "" and S3 != "" then do something

2 个答案:

答案 0 :(得分:7)

如果所有内容都必须为空,以便您执行某些操作,

case {S1,S2,S3} of
    {[],[],[]} -> %% empty
    _ -> %% not empty
end.
如果你需要知道哪一个是空的
case {S1,S2,S3} of
    {[],[],[]} -> %% empty
    {[],_,_} -> %% S1 empty
    {_,[],_} -> %% S2 empty
    {_,_,[]} -> %% S3 empty
end.
清洁代码!!

修改
case lists:member(true,[Each =:= []  || Each <- [S1,S2,S3]]) of
    true -> 
        %% atleast one of them is empty
    false -> 
        %% all are not empty
end.

答案 1 :(得分:2)

注意Erlang中的字符串只是整数列表,您可以执行以下操作:

case S1 =/= [] andalso S2 =/= [] andalso S3 =/= [] of
  true -> do_something;
  false -> do_something_else
end

使用""代替[]也可以。