با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش Swift را دنبال می کنند. در بخش های پیشین انواع داده ای مختلف در Swift را بررسی کردیم ، به طور کلی داده ها شامل یکی از دو نوع عددی و رشته ای می باشند، هر کدام از این دو نوع تقریبا در تمام برنامه های کامپیوتری استفاده می شوند. String (رشته ها) از داده های اصلی هر برنامه هستند که علاوه بر ذخیره در دیتابیس در عناوین و توضیحات رابط کاربری هر برنامه نیز بسیار استفاده می شود. از این رو بسیار پر کاربرد می باشند، در ادامه ی مباحث به بررسی چگونگی کار با رشته ها در Swift می پردازیم.
در این آموزش شما با ساختار کلی، نحوه ی ایجاد و طرز کار با رشته ها در Swift آشنا خواهید شد.
شما می توانید رشته ها را به صورت مستقیم به یک متغیر نسبت داده و یا از تابع ()String استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 | var stringA = "Hello, Swift 4!" print( stringA ) var stringB = String("Hello, Swift 4!") print( stringB ) let stringC = """ Hey this is a example of multiple Line string by tutorialsPoint """ print(stringC) |
وقتی که برنامه ی فوق را اجرا کنید نتیجه را به صورت زیر مشاهده خواهید کرد:
1 2 3 4 5 | Hello, Swift 4! Hello, Swift 4! Hey this is a example of multiple Line string by tutorialsPoint |
شما می توانید یک رشته ی خالی را ایجاد کرده و همچنین خالی بودن یا نبودن یک رشته را بررسی کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var stringA = "" if stringA.isEmpty { print( "stringA is empty" ) } else { print( "stringA is not empty" ) } let stringB = String() if stringB.isEmpty { print( "stringB is empty" ) } else { print( "stringB is not empty" ) } |
نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:
1 2 | stringA is empty stringB is empty |
ثابت ها مقادیری هستند که می توان از آن ها در محاسبات و بخش های مختلف برنامه استفاده کرد اما مقدار آن ها تغییری نمی کند:
1 2 3 4 5 6 7 | var stringA = "Hello, Swift 4!" stringA + = "--Readers--" print( stringA ) let stringB = String("Hello, Swift 4!") stringB + = "--Readers--" print( stringB ) |
نتیجه ی کامپایل و اجرای برنامه ی فوق به صورت زیر خواهد بود:
1 2 3 | Playground execution failed: error: <EXPR>:10:1: error: 'String' is not convertible to '@lvalue UInt8' stringB + = "--Readers--" |
شما می توانید رشته های مختلفی که از قل تعریف کرده اید را با هم ترکیب کنید.
همچنین می توانید مقادیر عددی را نیز با مقادیر رشته ای ترکیب کنید:
1 2 3 4 5 6 | var varA = 20 let constA = 100 var varC:Float = 20.0 var stringA = "\(varA) times \(constA) is equal to \(varC * 100)" print( stringA ) |
نتیجه ی اجرا و کامپایل برنامه ی فوق به صورت زیر خواهد بود:
1 | 20 times 100 is equal to 2000.0 |
الحاق رشته ها با هم بسیار ساده است و کافیست از عملگر + بین دو رشته برای الحاق آن ها استفاده کرد:
1 2 3 4 5 | let constA = "Hello," let constB = "World!" var stringA = constA + constB print( stringA ) |
نتیجه ی کامپایل و اجرای برنامه ی فوق به صورت زیر خواهد بود:
1 | Hello,World! |
برای بدست آوردن طول یک رشته می توانید از تابع count() مانند مثال زیر استفاده کنید:
1 2 3 | var varA = "Hello, Swift 4!" print( "\(varA), length is \((varA.count))" ) |
نتیجه ی کامپایل و اجرای برنامه ی فوق به صورت زیر خواهد بود:
1 | Hello, Swift 4!, length is 15 |
با استفاده از عملگر == می توان دو متغیر یا دو رشته را با هم مقایسه کرد:
1 2 3 4 5 6 7 8 | 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" ) } |
نتیجه ی کامپایل و اجرای برنامه ی فوق به صورت زیر خواهد بود:
1 | Hello, Swift 4! and Hello, World! are not equal |
ایجاد فاصله بین کاراکترهای رشته:
swift به شما اجازه می دهد که بین کاراکترهای یک رشته به صورت فاصله ایحاد کنید:
1 2 3 | for chars in "ThisString" { print(chars, terminator: " ") } |
نتیجه ی کامپایل و اجرای برنامه ی فوق به صورت زیر خواهد بود:
1 | T h i s S t r i n g |
شما می توانید از استانداردهای UTF-8 و UTF-16 در رشته های swift استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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) ") } |
نتیجه ی کامپایل و اجرای برنامه ی فوق به صورت زیر خواهد بود:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | UTF-8 Codes: 68 111 103 63 63 63 UTF-16 Codes: 68 111 103 63 63 63 |
Swift عملگرها و متدهای زیر را برای دستکاری رشته ها ارائه می دهد:
ردیف | توابع و عملگرها / کاربرد |
---|---|
۱ | isEmpty مقدار Boolean که تعیین می کند که آیا یک رشته خالی است یا خیر. |
۲ | (hasPrefix(prefix: String تابع برای بررسی اینکه آیا یک رشته پارامتر داده شده به عنوان پیشوند رشته وجود دارد یا نه. |
۳ | (hasSuffix(suffix: String تابع برای بررسی اینکه آیا یک رشته پارامتر داده شده به عنوان یک پسوند رشته وجود دارد یا خیر. |
۴ | ()toInt تابع برای تبدیل ارزش عددی رشته ای به Integer. |
۵ | ()count عملکرد عمومی برای شمارش تعداد کاراکترها در یک رشته. |
۶ | utf8 رشته ها را به یک استاندارد UTF-8 تبدیل می کند. |
۷ | utf16 رشته ها را به یک استاندارد UTF-16 تبدیل می کند. |
۸ | unicodeScalars Unicode Scalar را در یک رشته برمی گرداند. |
۹ | + اپراتوری برای ترکیب دو رشته یا یک رشته و یک شخصیت یا دو کاراکتر. |
۱۰ | += اپراتوری برای اضافه کردن یک رشته یا کاراکتر به یک رشته موجود. |
۱۱ | == اپراتوری برای تعیین برابری دو رشته. |
۱۲ | < اپراتوری برای مقایسه ی دو رشته.
|
۱۳ | startIndex برای گرفتن مقدار از ابتدای index رشته |
۱۴ | endIndex برای گرفتن مقدار از آخر index رشته |
۱۵ | Indices برای دسترسی به تک تک کاراکترهای رشته ها |
۱۶ | (insert(“Value”, at: position برای قرار دادن یک مقدار در یک موقعیت |
۱۷ | (remove(at: position (removeSubrange(range برای حذف یک مقدار در یک موقعیت، یا برای حذف محدوده ای از مقادیر از رشته. |
۱۸ | ()reversed معکوس یک رشته را برمی گرداند. |
رشته ها در تمام زبان های برنامه نویسی هم به عنوان ورودی و داده در دیتابیس ذخیره شده و هم در رابط کاربری برنامه ها در بخش های عناوین و رشته ها استفاده می شوند، از این رو مباحث این بخش را به کار با رشته ها در Swift اختصاص دادیم.