Swift - สตริง

สตริงใน Swift 4 เป็นชุดอักขระที่เรียงตามลำดับเช่น "Hello, World!" และแสดงโดยประเภทข้อมูล Swift 4Stringซึ่งจะแสดงถึงชุดค่าของ Character ชนิด.

สร้างสตริง

คุณสามารถสร้าง String โดยใช้สตริงลิเทอรัลหรือสร้างอินสแตนซ์ของคลาส String ดังนี้ -

// String creation using String literal
var stringA = "Hello, Swift 4!"
print( stringA )

// String creation using String instance
var stringB = String("Hello, Swift 4!")
print( stringB )

//Multiple line string

let stringC = """
Hey this is a
example of multiple Line
string by tutorialsPoint 

"""
print(stringC)

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังต่อไปนี้

Hello, Swift 4!
Hello, Swift 4!
Hey this is a
example of multiple Line
string by tutorialsPoint

สตริงว่าง

คุณสามารถสร้าง String ว่างโดยใช้ลิเทอรัลสตริงว่างหรือสร้างอินสแตนซ์ของคลาส String ดังที่แสดงด้านล่าง คุณยังสามารถตรวจสอบว่าสตริงว่างหรือไม่โดยใช้คุณสมบัติบูลีนisEmpty.

// Empty string creation using String literal
var stringA = ""

if stringA.isEmpty {
   print( "stringA is empty" )
} else {
   print( "stringA is not empty" )
}

// Empty string creation using String instance
let stringB = String()

if stringB.isEmpty {
   print( "stringB is empty" )
} else {
   print( "stringB is not empty" )
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -

stringA is empty
stringB is empty

ค่าคงที่ของสตริง

คุณสามารถระบุได้ว่า String ของคุณสามารถแก้ไข (หรือกลายพันธุ์) ได้โดยกำหนดให้กับตัวแปรหรือจะคงที่โดยกำหนดให้เป็นค่าคงที่โดยใช้ let คีย์เวิร์ดตามรูปด้านล่าง -

// stringA can be modified
var stringA = "Hello, Swift 4!"
stringA + = "--Readers--"
print( stringA )

// stringB can not be modified
let stringB = String("Hello, Swift 4!")
stringB + = "--Readers--"
print( stringB )

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -

Playground execution failed: error: <EXPR>:10:1: error: 'String' is not
convertible to '@lvalue UInt8'
stringB + = "--Readers--"

การแก้ไขสตริง

การแก้ไขสตริงเป็นวิธีสร้างค่าสตริงใหม่จากการผสมของค่าคงที่ตัวแปรลิเทอรัลและนิพจน์โดยการรวมค่าไว้ในลิเทอรัลสตริง

แต่ละรายการ (ตัวแปรหรือค่าคงที่) ที่คุณแทรกลงในสตริงลิเทอรัลจะถูกรวมไว้ในวงเล็บคู่หนึ่งซึ่งนำหน้าด้วยแบ็กสแลช นี่คือตัวอย่างง่ายๆ -

var varA = 20
let constA = 100
var varC:Float = 20.0

var stringA = "\(varA) times \(constA) is equal to \(varC * 100)"
print( stringA )

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -

20 times 100 is equal to 2000.0

การต่อสตริง

คุณสามารถใช้ตัวดำเนินการ + เพื่อเชื่อมสองสตริงหรือสตริงกับอักขระหรือสองอักขระ นี่คือตัวอย่างง่ายๆ -

let constA = "Hello,"
let constB = "World!"

var stringA = constA + constB
print( stringA )

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -

Hello,World!

ความยาวสตริง

สาย Swift 4 ไม่มี lengthคุณสมบัติ แต่คุณสามารถใช้ฟังก์ชัน global count () เพื่อนับจำนวนอักขระในสตริง นี่คือตัวอย่างง่ายๆ -

var varA = "Hello, Swift 4!"

print( "\(varA), length is \((varA.count))" )

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -

Hello, Swift 4!, length is 15

การเปรียบเทียบสตริง

คุณสามารถใช้ตัวดำเนินการ == เพื่อเปรียบเทียบตัวแปรสตริงสองตัวหรือค่าคงที่ นี่คือตัวอย่างง่ายๆ -

var varA = "Hello, Swift 4!"
var varB = "Hello, World!"

if varA == varB {
   print( "\(varA) and \(varB) are equal" )
} else {
   print( "\(varA) and \(varB) are not equal" )
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -

Hello, Swift 4! and Hello, World! are not equal

สตริงซ้ำ

สตริงเป็นคอลเลกชันของค่าใน swift 4 อีกครั้งดังนั้นเราจึงสามารถวนซ้ำสตริงโดยใช้ลูป -

for chars in "ThisString" {
   print(chars, terminator: " ")
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -

T h i s S t r i n g

สตริง Unicode

คุณสามารถเข้าถึงการแสดง UTF-8 และ UTF-16 ของสตริงโดยการวนซ้ำผ่านคุณสมบัติ utf8 และ utf16 ดังที่แสดงในตัวอย่างต่อไปนี้ -

var unicodeString = "Dog???"

print("UTF-8 Codes: ")
for code in unicodeString.utf8 {
   print("\(code) ")
}

print("\n")

print("UTF-16 Codes: ")
for code in unicodeString.utf16 {
   print("\(code) ")
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -

UTF-8 Codes: 
68 
111 
103 
63 
63 
63 


UTF-16 Codes: 
68 
111 
103 
63 
63 
63

ฟังก์ชันสตริงและตัวดำเนินการ

Swift 4 รองรับวิธีการและตัวดำเนินการที่หลากหลายที่เกี่ยวข้องกับ Strings -

ซีเนียร์ No หน้าที่ / ตัวดำเนินการและวัตถุประสงค์
1

isEmpty

ค่าบูลีนที่กำหนดว่าสตริงว่างหรือไม่

2

hasPrefix(prefix: String)

ฟังก์ชันตรวจสอบว่าสตริงพารามิเตอร์ที่กำหนดมีอยู่เป็นคำนำหน้าของสตริงหรือไม่

3

hasSuffix(suffix: String)

ฟังก์ชันตรวจสอบว่าสตริงพารามิเตอร์ที่กำหนดมีอยู่เป็นส่วนต่อท้ายของสตริงหรือไม่

4

toInt()

ฟังก์ชันในการแปลงค่าสตริงตัวเลขเป็นจำนวนเต็ม

5

count()

ฟังก์ชันส่วนกลางเพื่อนับจำนวนอักขระในสตริง

6

utf8

คุณสมบัติเพื่อส่งคืนการแสดง UTF-8 ของสตริง

7

utf16

คุณสมบัติเพื่อส่งคืนการแสดง UTF-16 ของสตริง

8

unicodeScalars

คุณสมบัติที่จะส่งคืนการแสดง Unicode Scalar ของสตริง

9

+

ตัวดำเนินการเพื่อเชื่อมสองสตริงหรือสตริงและอักขระหรือสองอักขระ

10

+=

ตัวดำเนินการเพื่อต่อท้ายสตริงหรืออักขระเข้ากับสตริงที่มีอยู่

11

==

ตัวดำเนินการเพื่อกำหนดความเท่าเทียมกันของสองสตริง

12

<

ตัวดำเนินการเพื่อทำการเปรียบเทียบพจนานุกรมเพื่อพิจารณาว่าสตริงหนึ่งประเมินว่าน้อยกว่าอีกสตริงหรือไม่

13

startIndex

เพื่อรับค่าที่ดัชนีเริ่มต้นของสตริง

14

endIndex

เพื่อรับค่าที่ดัชนีสิ้นสุดของสตริง

15

Indices

ในการเข้าถึงอนาจารทีละคน นั่นคืออักขระทั้งหมดของสตริงทีละตัว

16

insert("Value", at: position)

เพื่อแทรกค่าที่ตำแหน่ง

17

remove(at: position)

removeSubrange(range)

เพื่อลบค่าที่ตำแหน่งหรือลบช่วงของค่าออกจากสตริง

18

reversed()

คืนค่าย้อนกลับของสตริง