Swift 程序将字符串类型变量转换为布尔值
本教程将讨论如何编写 Swift 程序将字符串类型变量转换为布尔值。
Swift 支持多种数据类型,字符串和布尔值就是其中之一。字符串是字符的有序集合。例如:"TutorialsPoint"、"Pinky"等。要创建字符串类型变量,我们使用 String 关键字。而布尔值表示布尔值。布尔值只有两个值:true 或 false。要创建布尔类型变量,我们使用 Bool 关键字。
Swift 不提供任何专用的构造函数(如 String()、Int())来将字符串转换为布尔值。因此,我们可以使用以下任何一种方法将布尔值转换为字符串。
以下是相同的示例 -
输入
假设给定的输入为 -
Value = "true"
输出
所需的输出为 -
Bool = true
方法 1
在此方法中,我们使用比较运算符 (==) 将字符串转换为布尔值。
示例
以下程序演示了如何将字符串类型变量转换为布尔值。
import Foundation
import Glibc
// 字符串类型变量
var myStr : String = "true"
// Bool 类型变量
var myValue : 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,并将结果赋给 bool 变量。
我们可以使用这种方法,但它不是将字符串转换为 bool 的最有效方法。
方法 2
众所周知,Bool 数据类型只能接受两个值:true 或 false。但是,用户可以为布尔值使用多种字符串表示形式,例如"TRUE"、"FALSE"、"0"、"1"、"T"、"F"、"YES"、"NO"、"yes"、"no"、"True"、"False"等。因此,为了解决这个问题,我们使用 switch case 语句将字符串转换为布尔值。
示例
以下程序演示了如何将字符串类型变量转换为布尔值。
import Foundation
import Glibc
// 字符串类型变量
var myStr : String = "FALSE"
// 布尔类型变量
var myValue : Bool
// 将字符串转换为布尔值
// 使用 switch case 语句
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
在上面的代码中,string = "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
// 字符串类型变量
var myStr : String = "TRUE"
// 布尔类型变量
var myValue : Bool
// 创建数组
var forTrue = ["true", "t", "1", "yes", "y"]
var forFalse = ["false", "f", "no", "0", "n"]
var temp = myStr.lowercased()
// 将字符串转换为布尔值
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
在上面的代码中,string = "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")
}
这里,forTrue 数组中存在 String = "true",因此我们将 true 赋值给 myValue 变量(它是 bool 类型),并在屏幕上打印输出。如果输入的值不是给定值,则会输出"输入的值不是有效的布尔值"。