รับความยาวของสตริง


781

คุณจะได้ความยาวของ a Stringอย่างไร ตัวอย่างเช่นฉันมีตัวแปรที่กำหนดเช่น:

var test1: String = "Scott"

อย่างไรก็ตามฉันไม่สามารถหาวิธีความยาวบนสตริงได้


ความเป็นไปได้ที่ซ้ำกันของความยาวสตริงใน Swift 1.2 และ Swift 2.0
King-Wizard

ฉันต้องย้ายรหัสจำนวนมากด้วยตนเองเนื่องจาก Swift 3 ดังนั้นฉันจึงตัดสินใจสร้างส่วนขยาย ดังนั้นตอนนี้หากต้องอัปเกรดเป็นรุ่นใหญ่ใหม่ฉันต้องย้ายเฉพาะส่วนขยาย ที่นี่คุณจะพบส่วนขยาย Swift 3 ที่ฉันได้สร้างขึ้น github.com/tukur187/Swift3
Shkelzen

คำตอบ:


1284

ตั้งแต่ Swift 4+

มันเป็นเพียง:

test1.count

ด้วยเหตุผล

(ขอบคุณ Martin R)

จาก Swift 2:

ด้วย Swift 2 Apple ได้เปลี่ยนฟังก์ชั่นทั่วโลกเป็นส่วนขยายโปรโตคอลส่วนขยายที่ตรงกับประเภทใด ๆ ที่สอดคล้องกับโปรโตคอล ดังนั้นไวยากรณ์ใหม่คือ:

test1.characters.count

(ขอบคุณ JohnDifool สำหรับหัวขึ้น)

ตั้งแต่ Swift 1

ใช้วิธีการนับอักขระ:

let unusualMenagerie = "Koala 🐨, Snail 🐌, Penguin 🐧, Dromedary 🐪"
println("unusualMenagerie has \(count(unusualMenagerie)) characters")
// prints "unusualMenagerie has 40 characters"

จาก Apple Swift Guide

(หมายเหตุสำหรับ Swift เวอร์ชันก่อนหน้า 1.2 จะเป็นสิ่งนี้countElements(unusualMenagerie)แทน)

สำหรับตัวแปรของคุณมันจะเป็น

length = count(test1) // was countElements in earlier versions of Swift

หรือคุณสามารถใช้ test1.utf16count


11
ที่น่าสนใจว่า countElements เป็นฟังก์ชั่นระดับโลก มีรายการฟังก์ชันสากลหรือไม่
Scott Walter

7
ปัญหาเกี่ยวกับ countElements คือมีการประกาศดังนี้: func countElements <T> (x: T) -> T.IndexType.DistanceType และประเภทส่งคืนไม่ยอมรับการดำเนินการ +
MarkAurelius

288
มันยากเกินไปที่จะเพิ่มเมธอด str.length (
เลิกชก

13
ด้วย Swift 2 ฉันสามารถทำงานได้เท่านั้น: let len ​​= test1.characters.count
Laurent

7
โปรดทราบว่าสวิฟท์ 4 string.countก็จะเป็น
Martin R

335

TLDR:

สำหรับสวิฟท์ 2.0 และ 3.0test1.characters.countการใช้งาน แต่มีบางสิ่งที่คุณควรรู้ ดังนั้นอ่านต่อ

การนับจำนวนตัวอักษรใน Swift

ก่อน Swift 2.0 countเป็นฟังก์ชั่นระดับโลก ในฐานะของ Swift 2.0 มันสามารถเรียกว่าเป็นฟังก์ชั่นสมาชิก

test1.characters.count

มันจะคืนค่าจำนวนอักขระ Unicode ที่แท้จริงใน a Stringดังนั้นจึงเป็นทางเลือกที่ถูกต้องที่สุดในแง่ที่ว่าถ้าคุณพิมพ์สตริงและนับจำนวนตัวอักษรด้วยมือคุณจะได้ผลลัพธ์เดียวกัน

อย่างไรก็ตามเนื่องจากวิธีStringsการใช้งานใน Swift ตัวละครจึงไม่ได้ใช้หน่วยความจำในปริมาณเท่ากันเสมอดังนั้นโปรดทราบว่าสิ่งนี้จะทำงานแตกต่างจากวิธีการนับจำนวนตัวอักษรปกติในภาษาอื่น

ตัวอย่างเช่นคุณยังสามารถใช้ test1.utf16.count

แต่ตามที่ระบุไว้ด้านล่างค่าที่ส่งกลับไม่รับประกันว่าจะเป็นเช่นเดียวกับที่ของการโทรบนcountcharacters

จากการอ้างอิงภาษา:

กลุ่มของกราฟแบบขยายสามารถประกอบด้วยสเกลาร์ Unicode ตั้งแต่หนึ่งตัวขึ้นไป ซึ่งหมายความว่าอักขระที่แตกต่างกันและการนำเสนอที่แตกต่างกันของอักขระเดียวกันนั้นอาจต้องการหน่วยความจำในการจัดเก็บที่แตกต่างกัน ด้วยเหตุนี้อักขระใน Swift จึงไม่ใช้หน่วยความจำในปริมาณเท่ากันภายในการแทนค่าของสตริง ด้วยเหตุนี้จำนวนอักขระในสตริงจึงไม่สามารถคำนวณได้โดยไม่ต้องวนซ้ำผ่านสตริงเพื่อกำหนดขอบเขตคลัสเตอร์คลัสเตอร์กราฟเพิ่มเติม หากคุณกำลังทำงานกับค่าสตริงที่ยาวเป็นพิเศษโปรดทราบว่าคุณสมบัติอักขระต้องวนซ้ำสเกล Unicode ในสตริงทั้งหมดเพื่อกำหนดอักขระสำหรับสตริงนั้น

จำนวนอักขระที่ส่งคืนโดยคุณสมบัติอักขระไม่เหมือนกับคุณสมบัติความยาวของ NSString ที่มีอักขระเหมือนกันเสมอไป ความยาวของ NSString ขึ้นอยู่กับจำนวนของหน่วยรหัส 16 บิตภายในการแสดง UTF-16 ของสตริงและไม่ใช่จำนวนของ Unicode ที่ขยายกราฟกลุ่มภายในสตริง

ตัวอย่างที่แสดงสถานการณ์ที่อธิบายไว้ข้างต้นได้อย่างสมบูรณ์คือการตรวจสอบความยาวของสตริงที่มีอักขระอิโมจิตัวเดียวตามที่ระบุโดยn00neimp0rtantในความคิดเห็น

var emoji = "👍"
emoji.characters.count             //returns 1
emoji.utf16.count                  //returns 2

26
ฉันขอขอบคุณคำตอบที่ละเอียดและระมัดระวังของคุณ แต่ฉันต้องยอมรับว่ามันทำให้ฉันไม่สบายใจ คุณให้ฉัน 3 วิธีในการรับความยาวของสตริงทั้งหมดด้วยข้อจำกัดความรับผิดชอบที่คำตอบที่พวกเขาให้อาจไม่ใช่สิ่งที่คุณคาดหวัง ไม่มีวิธีใดที่เชื่อถือได้ในตัว Swift เพื่อรับค่าความยาวและความน่าเชื่อถือที่ถูกต้องของสตริง
n00neimp0rtant

6
@ n00neimp0rtant ขออภัยถ้าฉันไม่ได้ทำให้ชัดเจน วิธีแก้ปัญหาแรก ( countElements()) รับจำนวนอักขระที่แน่นอนใน String อาจแตกต่างจากสิ่งที่คุณจะได้รับจากการโทร[str length]ใน Objective-C เนื่องจากlengthวิธีการสมมติว่าตัวละครทุกตัวในสตริงนั้นประกอบด้วยหน่วยรหัส 16 บิตในขณะที่countElements()รับจำนวน Unicode ตัวจริง อย่างไรก็ตามส่วนใหญ่ตัวเลือกทั้งหมดข้างต้นจะส่งคืนผลลัพธ์เดียวกันโดยเฉพาะอย่างยิ่งหากคุณกำลังทำงานกับอักขระทั่วไปภาษาอังกฤษ
Cezar

2
@ n00neimp0rtant ฉันปรับแต่งคำตอบของฉันเล็กน้อยเพื่อลองและทำให้ชัดเจนยิ่งขึ้น
Cezar

2
ฉันเห็นสิ่งที่คุณหมายถึงตอนนี้ ฉันแค่พยายามทำให้ความยาวของสายอักขระมีอักขระ Emoji ตัวเดียว วัตถุประสงค์ -C ให้ค่า 4 กับฉันและ Swift ให้ค่า 1 กับฉันดังนั้นจริง ๆ แล้วดูเหมือนแม่นยำมากขึ้น (และดังนั้น "ไม่ใช่สิ่งที่ฉันคาดหวัง" แดกดันแดกดัน ขอขอบคุณสำหรับการชี้แจง!
n00neimp0rtant

1
@ n00neimp0rtant แน่นอน! นั่นเป็นตัวอย่างที่สมบูรณ์แบบ ฉันจะเพิ่มไปยังคำตอบ
Cezar

92

อัพเดต Swift 1.2: ไม่มีการนับเสริมสำหรับการนับขนาดของคอลเลกชัน เพียงใช้ฟังก์ชั่นการนับแทน: count ("Swift")

Swift 2.0, 3.0 และ 3.1:

ให้ strLength = string.characters.count

Swift 4.2 (4.0 เป็นต้นไป): [Apple Documentation - Strings]

ให้ strLength = string.count


61

สวิฟท์ 1.1

extension String {
    var length: Int { return countElements(self) }  // 
}

สวิฟท์ 1.2

extension String {
    var length: Int { return count(self)         }  // 
}

Swift 2.0

extension String {
    var length: Int { return characters.count    }  // 
}

สวิฟท์ 4.2

extension String {
    var length: Int { return self.count }           
}

let str = "Hello"
let count = str.length    // returns 5 (Int)

6
ใช่เราต้องการเลเยอร์ที่เป็นนามธรรมสำหรับไวยากรณ์ของ Swift ซึ่งกำลังเปลี่ยนเป็นรายเดือน!
Cosmin

@Lee สิ่งนี้ใช้ไม่ได้ใน swift 4 เนื่องจากอักขระเลิกใช้แล้ว whac-a-mole วิ่งไปเรื่อย ๆ ถอนหายใจ
eonist

48

สวิฟต์ 4

"string".count

;)

สวิฟท์ 3

extension String {
    var length: Int {
        return self.characters.count
    }
}

การใช้

"string".length


มันจะส่งกลับ String.CharacterView.IndexDistance แล้ว Int ล่ะ?
eonist

@GitSync อยู่ที่ไหน ฉันไม่เข้าใจคุณ
Vyacheslav

@Vyacheslav ใน swift 4 "string" .count คืนค่า String.CharacterView.IndexDistance ดูคำตอบของฉันที่นี่: stackoverflow.com/a/47203597/5389500เพื่อรับ int ใน swift 3 และ 4
eonist

ฉันได้ทดสอบแล้วว่านี่คือสนามเด็กเล่น:
Vyacheslav

//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground" print(type(of: str.characters.count)) print(type(of: str.count))
Vyacheslav

25

หากคุณเพียงแค่พยายามดูว่าสตริงว่างเปล่าหรือไม่ (ตรวจสอบความยาวเป็น 0) Swift นำเสนอวิธีทดสอบบูลีนแบบง่าย ๆ String

myString.isEmpty

อีกด้านหนึ่งของเหรียญนี้คือผู้ที่ถามใน ObjectiveC จะถามได้อย่างไรว่าสตริงว่างเปล่าหรือไม่ซึ่งคำตอบคือการตรวจสอบความยาว 0:

NSString ว่างเปล่า


18

TL; DRหากคุณต้องการความยาวของชนิดสตริงในแง่ของจำนวนของตัวละครมนุษย์สามารถอ่านได้ที่ใช้countElements () หากคุณต้องการที่จะรู้ว่ามีความยาวในแง่ของจำนวนของกลุ่มอักษรขยายการใช้endIndex อ่านต่อเพื่อดูรายละเอียด

Stringประเภทจะดำเนินการเป็นคอลเลกชันที่สั่งซื้อ (เช่นลำดับ) ของตัวอักษร Unicode และมันสอดคล้องกับCollectionTypeโปรโตคอลซึ่งสอดคล้องกับ_CollectionTypeโปรโตคอลซึ่งเป็นประเภทการป้อนข้อมูลที่คาดหวังโดยcountElements () ดังนั้นcountElements ()สามารถเรียกใช้ผ่านประเภทสตริงและจะส่งกลับจำนวนตัวอักษร

อย่างไรก็ตามในสอดคล้องกับCollectionTypeซึ่งสอดหันไป_CollectionType , StringยังดำเนินstartIndexและendIndexคุณสมบัติคำนวณซึ่งอันที่จริงแทนตำแหน่งของดัชนีก่อนที่จะกระจุกตัวอักษรตัวแรกและตำแหน่งของดัชนีหลังจากที่กลุ่มตัวอักษรตัวสุดท้ายตามลำดับ . ดังนั้นในสตริง "ABC" ตำแหน่งของดัชนีก่อน A คือ 0 และหลังจาก C คือ 3 ดังนั้นendIndex = 3 ซึ่งเป็นความยาวของสตริงด้วย

ดังนั้นendIndexสามารถใช้เพื่อรับความยาวของ String ชนิดใดก็ได้ใช่ไหม?

เอาละไม่เสมอไป ... อักขระ Unicode นั้นจริง ๆ แล้วจะขยายกลุ่มของกราฟซึ่งเป็นลำดับของสเกลาร์ Unicode หนึ่งตัวหรือมากกว่านั้นรวมกันเพื่อสร้างอักขระที่มนุษย์อ่านได้เพียงตัวเดียว

let circledStar: Character = "\u{2606}\u{20DD}" // ☆⃝

circledStarเป็นอักขระตัวเดียวประกอบด้วย U + 2606 (ดาวสีขาว) และ U + 20DD (วงกลมล้อมรอบที่รวมกัน) ลองสร้างStringจากcircledStarและเปรียบเทียบผลของการcountElements ()และendIndex

let circledStarString = "\(circledStar)"
countElements(circledStarString) // 1
circledStarString.endIndex // 2

15

ใน Swift 2.0 countไม่ทำงานอีกต่อไป คุณสามารถใช้สิ่งนี้แทน:

var testString = "Scott"
var length = testString.characters.count

14

นี่คือบางสิ่งที่สั้นกว่าและดูเป็นธรรมชาติมากกว่าการใช้ฟังก์ชันสากล:

aString.utf16count

ฉันไม่รู้ว่ามันมีให้ในรุ่นเบต้า 1 หรือไม่ แต่มันมีอยู่ในเบต้า 2 แน่นอน


2
ดูคำตอบของ Cezar สิ่งนี้จะไม่ให้หมายเลข“ อักขระ” ในสตริงสำหรับคำนิยาม“ อักขระ” ของคนส่วนใหญ่ จากนั้นอีกครั้ง Objective-C ก็ไม่ได้ขึ้นอยู่กับคุณที่จะตัดสินใจว่าคุณใส่ใจหรือไม่
jbg

12

สวิฟต์ 5.1, 5

let flag = "🇵🇷"

print(flag.count)
// Prints "1" --  Counts the characters and emoji as length 1

print(flag.unicodeScalars.count)
// Prints "2" --  Counts the unicode lenght ex. "A" is 65

print(flag.utf16.count)
// Prints "4"

print(flag.utf8.count)
// Prints "8"

11

อัปเดตสำหรับ Xcode 6 เบต้า 4 เปลี่ยนวิธี utf16count -> utf16Count

 var test1: String = "Scott"
 var length =  test1.utf16Count

หรือ

 var test1: String = "Scott"
 var length = test1.lengthOfBytesUsingEncoding(NSUTF16StringEncoding)

เมื่อคุณใช้สายอักขระที่ซับซ้อนกับอีโมจิคำตอบด้วยutf16countจะผิด
Victor Sigler

10

ตั้งแต่ Swift 1.2 utf16Countถูกลบแล้ว ตอนนี้คุณควรใช้count()ฟังก์ชันสากลและส่งผ่านมุมมอง UTF16 ของสตริง ตัวอย่างด้านล่าง ...

let string = "Some string"
count(string.utf16)

1
มันช้ากว่า. utf16count หรือไม่
samir105

1
ดูเหมือนว่าความเร็วเดียวกับ .utf16count, เร็วกว่านับ (สตริง)
samir105

8

สำหรับ Xcode 7.3 และ Swift 2.2

let str = "🐶"
  1. หากคุณต้องการจำนวนตัวอักษรภาพ:

    str.characters.count
  2. หากคุณต้องการ "หน่วยรหัส 16 บิตภายในการแสดง UTF-16 ของสตริง":

    str.utf16.count

ส่วนใหญ่เวลา1คือสิ่งที่คุณต้องการ

เมื่อไหร่ที่คุณต้องการ2 ? ฉันได้พบกรณีใช้งานสำหรับ2 :

let regex = try! NSRegularExpression(pattern:"🐶", 
    options: NSRegularExpressionOptions.UseUnixLineSeparators)
let str = "🐶🐶🐶🐶🐶🐶"
let result = regex.stringByReplacingMatchesInString(str, 
    options: NSMatchingOptions.WithTransparentBounds, 
    range: NSMakeRange(0, str.utf16.count), withTemplate: "dog")
print(result) // dogdogdogdogdogdog

หากคุณใช้1ผลลัพธ์จะไม่ถูกต้อง:

let result = regex.stringByReplacingMatchesInString(str, 
    options: NSMatchingOptions.WithTransparentBounds, 
    range: NSMakeRange(0, str.characters.count), withTemplate: "dog")
print(result) // dogdogdog🐶🐶🐶

7

คุณสามารถลองสิ่งนี้

var test1: String = "Scott"
var length =  test1.bridgeToObjectiveC().length

4
นั่นเป็นเช่นเดียวกับtest1.utf16count
Sulthan

1
@ vladof ดีมันทำงานได้ดี ดูคำตอบของ Cezar
jbg

6

ใน Swift 2.x ต่อไปนี้เป็นวิธีการค้นหาความยาวของสตริง

let findLength = "This is a string of text"
findLength.characters.count

ผลตอบแทน 24


5

Swift 2.0: รับจำนวน: yourString.text.characters.count

ตัวอย่างที่สนุกของวิธีนี้มีประโยชน์คือการแสดงการนับถอยหลังตัวอักษรจากตัวเลข (เช่น 150) ใน UITextView:

func textViewDidChange(textView: UITextView) {
    yourStringLabel.text = String(150 - yourStringTextView.text.characters.count)
}

4

ใน swift4 ฉันมักจะใช้string.countจนถึงทุกวันนี้ฉันพบว่า

string.endIndex.encodedOffset

คือการเปลี่ยนตัวผู้เล่นที่ดีกว่าเพราะมันจะเร็ว - 50 000 ตัวอักษรสตริงประมาณ 6 .countเวลาเร็วกว่า .countขึ้นอยู่กับความยาวสาย แต่.endIndex.encodedOffsetไม่ได้

แต่ไม่มีใคร มันไม่ดีสำหรับสายที่มีอิโมจิมันจะให้ผลที่ผิดดังนั้น.countถูกต้องเท่านั้น


3

ในSwift 4 : หากสตริงไม่มีอักขระ Unicode ให้ใช้ดังต่อไปนี้

let str : String = "abcd"
let count = str.count // output 4

หากสตริงมีอักขระแบบ Unicode ให้ใช้คำสั่งต่อไปนี้:

let spain = "España"
let count1 = spain.count // output 6
let count2 = spain.utf8.count // output 7

ทำไมคุณต้องการที่จะใช้utf8.count? นั่นไม่ได้นับจำนวนตัวอักษร มันให้จำนวนไบต์ที่จำเป็นสำหรับการเข้ารหัส UTF-8 ของสตริง
rmaddy

2

ใน Xcode 6.1.1

extension String {    
    var length : Int { return self.utf16Count  }
}

ฉันคิดว่า brainiacs จะเปลี่ยนสิ่งนี้ในทุกเวอร์ชั่นย่อย


2

รับค่าสตริงจาก textview หรือ textfield ของคุณ:

let textlengthstring = (yourtextview?.text)! as String

ค้นหาจำนวนตัวอักษรในสตริง:

let numberOfChars = textlength.characters.count

2

นี่คือสิ่งที่ฉันทำ

let replacementTextAsDecimal = Double(string)

if string.characters.count > 0 &&
    replacementTextAsDecimal == nil &&
    replacementTextHasDecimalSeparator == nil {
        return false
}

ฉันคิดว่าคุณกำลังพยายามทำมากกว่าแค่การรับความยาวของสตริงและในกรณีใด ๆ นี้ดูไม่สมบูรณ์ (ไม่ควรมีreturn trueกรณีเช่นกัน?) คุณช่วยกรุณาตรวจสอบอีกครั้งและในกรณีที่แก้ไขคำตอบของคุณ? ขอบคุณ!
Fabio พูดว่า Reinstate Monica

2

อัพเดต Swift 4 เปรียบเทียบกับ swift 3

Swift 4 กำจัดความต้องการอาร์เรย์อักขระบน String ซึ่งหมายความว่าคุณสามารถโทรหาcountสายอักขระได้โดยตรงโดยไม่ต้องใส่อาร์เรย์อักขระก่อน

"hello".count                  // 5

ในขณะที่ swift 3 คุณจะต้องได้รับอาร์เรย์อักขระจากนั้นนับองค์ประกอบในอาร์เรย์นั้น โปรดทราบว่าวิธีการต่อไปนี้ยังคงมีอยู่ใน swift 4.0 ในขณะที่คุณยังสามารถเรียกใช้charactersเพื่อเข้าถึงอาร์เรย์อักขระของสตริงที่กำหนด

"hello".characters.count       // 5

Swift 4.0 ยังใช้ Unicode 9 และตอนนี้สามารถตีความกลุ่มกราฟ ตัวอย่างเช่นการนับอีโมจิจะให้ 1 ในขณะที่รวดเร็ว 3.0 คุณอาจได้รับการนับมากกว่า 1

"👍🏽".count // Swift 4.0 prints 1, Swift 3.0 prints 2
"👨‍❤️‍💋‍👨".count // Swift 4.0 prints 1, Swift 3.0 prints 4

2

สวิฟต์ 4

let str =  "Your name"

str.count 

ข้อควรจำ: ช่องว่างถูกนับในจำนวนด้วย


2

คุณสามารถรับความยาวได้ง่ายๆโดยการเขียนส่วนขยาย:

extension String {
    // MARK: Use if it's Swift 2
    func stringLength(str: String) -> Int {
        return str.characters.count
    }

    // MARK: Use if it's Swift 3
    func stringLength(_ str: String) -> Int {
        return str.characters.count
    }

    // MARK: Use if it's Swift 4
    func stringLength(_ str: String) -> Int {
        return str.count
    }
}

1
var str = "Hello, playground"
var newString = str as NSString    

countElements(str)

ค่านี้นับจำนวนตัวอักษรใน Normal Swift String

countElements((newString as String))    

ค่านี้นับจำนวนอักขระใน NSString


1

วิธีที่ดีที่สุดในการนับ String ใน Swift คือ:

var str = "Hello World"
var length = count(str.utf16)

2
คุณควรใช้แค่ count (str) ลองใช้ tu use count (str.utf16) พร้อมการย่อยสตริงล่วงหน้า ()
Leo Dabus

1

String และ NSString เป็นบริดจ์ที่ไม่มีค่าผ่านทางดังนั้นคุณสามารถใช้วิธีการทั้งหมดที่มีให้กับ NSString ด้วยสตริงที่รวดเร็ว

let x = "test" as NSString
let y : NSString = "string 2"
let lenx = x.count
let leny = y.count

1
test1.characters.count

คุณจะได้รับจำนวนตัวอักษร / ตัวเลข ฯลฯ ในสตริงของคุณ

อดีต:

test1 = "StackOverflow"

print(test1.characters.count)

( พิมพ์ " 13 ")


1

Apple ทำให้มันแตกต่างจากภาษาหลักอื่น ๆ วิธีปัจจุบันคือการโทร:

test1.characters.count

อย่างไรก็ตามเพื่อให้ระมัดระวังเมื่อคุณพูดความยาวคุณหมายถึงจำนวนตัวอักษรไม่ใช่จำนวนไบต์เนื่องจากทั้งสองอาจแตกต่างกันเมื่อคุณใช้อักขระที่ไม่ใช่ ASCII

ตัวอย่างเช่น; "你好啊hi".characters.countจะให้ 5 แต่ไม่นับจำนวนไบต์ "你好啊hi".lengthOfBytes(using: String.Encoding.utf8)เพื่อให้ได้จำนวนที่แท้จริงของไบต์ที่คุณต้องทำ สิ่งนี้จะทำให้คุณ 11


1

ตอนนี้ (ใน Swift 2.3) ถ้าคุณใช้:

myString.characters.count 

วิธีนี้จะคืนค่าเป็น "ระยะทาง" ถ้าคุณต้องการวิธีคืนค่าจำนวนเต็มคุณควรพิมพ์ตัวละครแบบดังนี้:

var count = myString.characters.count as Int

2
DistanceของString.CharacterView คือ Intควรจะมีความจำเป็นในการหล่อนี้
Martin R
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.