Swift程序:将字符串类型变量转换为布尔值
本教程将讨论如何编写Swift程序以将字符串类型变量转换为布尔值。
Swift支持多种数据类型,字符串和布尔值就是其中两种。字符串是有序字符集合。例如:“TutorialsPoint”、“Pinky”等。要创建字符串类型变量,我们使用String关键字。而布尔值表示bool值。Bool只有两个值:true或false。要创建布尔类型变量,我们使用Bool关键字。
Swift没有提供任何专用的构造函数(如String(),Int())来将字符串转换为布尔值。因此,我们可以使用以下任一方法将布尔值转换为字符串。
以下是相同的演示 -
输入
假设我们的给定输入为 -
Value = “true”
输出
期望输出为 -
Bool = true
方法1
在这种方法中,我们使用比较运算符(==)将字符串转换为布尔值。
示例
以下程序演示如何将字符串类型变量转换为布尔值。
import Foundation import Glibc // String type variable var myStr : String = "true" // Bool type variable var myValue : Bool // Convert string into bool myValue = (myStr == "true") print("Boolean value:", myValue) print("Type of myValue variable:", type(of: myValue))
输出
Boolean value: true Type of myValue variable: Bool
在上面的代码中,我们有一个字符串 = “true”。现在我们通过使用(==)运算符将输入的字符串与“true”进行比较来将字符串转换为布尔值。如果两个字符串相等,则返回true。否则返回false。这里两个字符串相等,所以它返回true,并将结果赋值给布尔变量。
我们可以使用这种方法,但它不是将字符串转换为布尔值的最有效方法。
方法2
众所周知,Bool数据类型只能接受两个值:true或false。但是用户可能有多种字符串表示布尔值,例如“TRUE”、“FALSE”、“0”、“1”、“T”、“F”、“YES”、“NO”、“yes”、“no”、“True”、“False”等。为了解决这个问题,我们使用switch case语句将字符串转换为布尔值。
示例
以下程序演示如何将字符串类型变量转换为布尔值。
import Foundation import Glibc // String type variable var myStr : String = "FALSE" // Bool type variable var myValue : Bool // Convert String into Bool // Using switch case statement switch myStr.lowercased(){ case "true", "t", "1", "yes", "y": myValue = true print("Boolean Value:", myValue) case "false", "f", "no", "0", "n": myValue = false print("Boolean Value:", myValue) default: print("Entered value is not valid boolean value") }
输出
Boolean Value: false
在上面的代码中,我们有字符串 = “FALSE”。现在我们使用switch case语句将字符串转换为布尔值。在switch表达式中,我们使用lowercased()函数将给定的字符串转换为小写。现在我们将模式与每个case进行匹配,并在第二个case中找到匹配项。因此,将执行第二个case中的代码 -
myValue = false print("Boolean Value:", myValue)
这就是我们如何使用switch-case语句将字符串转换为布尔值。
方法3
用户可以有多个字符串来表示布尔值,例如“TRUE”、“FALSE”、“0”、“1”、“T”、“F”、“YES”、“NO”、“yes”、“no”、“True”、“False”等。但是Bool数据类型只能接受两个值:true或false。因此,我们使用数组将字符串转换为布尔值。
示例
以下程序演示如何将字符串类型变量转换为布尔值。
import Foundation import Glibc // String type variable var myStr : String = "TRUE" // Bool type variable var myValue : Bool // Create array var forTrue = ["true", "t", "1", "yes", "y"] var forFalse = ["false", "f", "no", "0", "n"] var temp = myStr.lowercased() // Convert String into Bool if forTrue.contains(temp){ myValue = true print("Boolean Value:", myValue) } else if forFalse.contains(temp){ myValue = false print("Boolean Value:", myValue) } else{ print("Entered value is not valid boolean value") }
输出
Boolean Value: true
在上面的代码中,我们有字符串 = “TRUE”。现在我们为true和false的所有可能表示创建两个数组 -
var forTrue = ["true", "t", "1", "yes", "y"] var forFalse = ["false", "f", "no", "0", “n"]
之后,我们将给定的字符串转换为小写。现在我们使用contains()函数来检查给定的字符串是否在数组中 -
if forTrue.contains(temp){ myValue = true print("Boolean Value:", myValue) } else if forFalse.contains(temp){ myValue = false print("Boolean Value:", myValue) } else{ print("Entered value is not valid boolean value") }
这里我们有String = “true”,它存在于forTrue数组中,因此我们将true赋值给myValue变量(它是bool类型)并在屏幕上打印输出。如果输入的值不是给定的值,则我们得到“输入值不是有效的布尔值”作为输出。