如何在AS3中将字符串“1”和“0”转换为true和false?

时间:2016-04-18 14:40:30

标签: string actionscript-3 casting boolean

在AS3中,当您尝试使用Boolean()将包含“1”或“0”的String转换为布尔值时,结果在两种情况下都为真。

Boolean("1") // true
Boolean("0") // true

在第一种情况下你会如何变为真,在第二种情况下会变为假?

2 个答案:

答案 0 :(得分:2)

您可以检查字符串是否包含“1”的确切值,如下所示:

var myBool:Boolean = (myString === "1");

或者你可以进行双重演员,如下所示:

var myBool:Boolean = Boolean(int(myString));

后者的优点是对于具有空格(“1”)或甚至“01”(在需要的情况下)的字符串为真,但仍为“0”,“0”或“00”将为假。

我在这里添加了这个Q& A,因为我偶然发现布尔(“0”)这个问题是真的。如果您有更好的解决方案,请随时发表评论。

答案 1 :(得分:1)

  

在第一种情况下你会如何变为真,在第二种情况下会变为假?

有多种方法可以将'1''0'分别转换为truefalse,但更重要的是如何其他数字如何处理这些案件。

例如,如果您想将这些字符串视为数字,并将它们转换为布尔值,就好像它们是数字一样,那么您可以在转换为Number之前强制转换为Boolean

var t = '1';
var f = '0';

Boolean(Number(t)); //true
!!+f; //false, terse syntax

这意味着其他非零数字(例如'-1')将变为true,而转换为NaN的非数字(例如'word')将变为{{} 1}}。

如果您想要检测该值是否为false,而其他所有内容应为'1',那么请使用简单的相等比较:

false

如果您想要检测值是否为零,您可以使用简单的不等式比较:

t === '1'; //true
f === '1'; //false

最重要的是您的预期投入及其各自的预期产出。