2015-09-29 22 views
38

Tôi cần phải tách riêng 4 chữ cái cuối của một chuỗi. Làm thế nào tôi có thể tách nó? Độ dài của chuỗi đang thay đổi.Làm thế nào để có được 4 ký tự cuối cùng của một chuỗi?

Ex:

var a = "StackOverFlow" 
var last4 = a.lastFour //That's what I want to do 
print(last4) //prints Flow 
+0

chức năng chuỗi con .. –

+0

@EricAya và các trình chặn khác: Đây không phải là bản sao của câu hỏi được liên kết. Trong các chuỗi gọi phương thức như '[1,2,3] .map ({" Int (\ ($ 0)) "}). Join (dấu phân tách:", ") .last (x)', 'substringWithRange' và bạn bè là vô ích. – Raphael

+0

Xem [ở đây] (http://stackoverflow.com/q/43277938/539599) để biết giải pháp hoạt động trong các chuỗi phương thức, nghĩa là không có tham chiếu bên ngoài đến chính chuỗi đó. (Nhận xét ở đây vì đây là kết quả hàng đầu của Google.) – Raphael

Trả lời

117

Một giải pháp là substringFromIndex

let a = "StackOverFlow" 
let last4 = a.substringFromIndex(a.endIndex.advancedBy(-4)) 

hoặc suffix trên characters

let last4 = String(a.characters.suffix(4)) 

code đang Swift 2

01.

Swift 3:

Trong Swift 3 cú pháp cho các giải pháp đầu tiên đã được thay đổi để

let last4 = a.substring(from:a.index(a.endIndex, offsetBy: -4)) 

Swift 4:

Trong Swift 4 nó trở nên thuận tiện hơn:

let last4 = a.suffix(4) 

Loại kết quả là loại mới Substring hoạt động như một String trong nhiều trường hợp. Tuy nhiên, nếu chuỗi con được cho là để lại phạm vi mà nó được tạo ra trong bạn phải tạo một phiên bản String mới.

let last4 = String(a.suffix(4)) 
+0

bạn da ma, tất cả các chuỗi Swift! Không thể tìm thấy chuỗi câu hỏi mà không có bạn trên đó – MikeG

+1

lưu ý rằng chuỗi con sẽ bị lỗi nếu chuỗi dài hơn 4 ký tự – codeinthesky

+0

Thật không may, điều này là vô dụng trong một chuỗi như '[1,2,3] .map ({" Int (\ ($ 0)) "}). Join (dấu phân cách:", ") .last (x)' - chúng ta không có một xử lý trên chuỗi trong các tình huống như vậy! – Raphael

12
String substr = a.substring(a.length() - 4) 

cú pháp là sai. không có loại trước khi vars trong Swift.

let a = "1234567890" 
let last4 = String(a.characters.suffix(4)) 
print(last4) 

công trình trên Swift 3.0

+0

a.substring (a.length() - 4) các kết quả cú pháp cụ thể trong quá trình tạo không thành công. Giải pháp: String (a.characters.suffix (4)) –

Các vấn đề liên quan