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类型)并在屏幕上打印输出。如果输入的值不是给定的值,则我们得到“输入值不是有效的布尔值”作为输出。

更新于:2022年12月13日

浏览量:1000+

开启您的职业生涯

完成课程获得认证

开始学习
广告