Tôi đã thấy nhiều phương pháp để xóa ký tự cuối cùng khỏi chuỗi. Tuy nhiên, có cách nào để loại bỏ bất kỳ ký tự cũ nào dựa trên chỉ mục của nó không?Xóa ký tự thứ n khỏi chuỗi
Trả lời
Trong khi chỉ số chuỗi không truy cập ngẫu nhiên và không phải là số, bạn có thể tiến chúng bằng một số để truy cập vào các nhân vật thứ n:
var s = "Hello, I must be going"
s.removeAtIndex(advance(s.startIndex, 5))
println(s) // prints "Hello I must be going"
Tất nhiên, bạn nên luôn luôn kiểm tra chuỗi có độ dài ít nhất là 5 trước khi thực hiện việc này!
chỉnh sửa: như @MartinR chỉ ra, bạn có thể sử dụng phiên bản với cấp-index tạm ứng để tránh nguy cơ chạy qua cuối cùng:
let index = advance(s.startIndex, 5, s.endIndex)
if index != s.endIndex { s.removeAtIndex(index) }
Như bao giờ hết, optionals là bạn của bạn:
// find returns index of first match,
// as an optional with nil for no match
if let idx = s.characters.index(of:",") {
// this will only be executed if non-nil,
// idx will be the unwrapped result of find
s.removeAtIndex(idx)
}
var hello = "hello world!"
Hãy nói rằng chúng ta muốn loại bỏ các "w". (Nó ở vị trí chỉ số thứ 6.)
Đầu tiên: Tạo chỉ mục cho vị trí đó. (Tôi đang thực hiện loại trả về Chỉ mục rõ ràng; không bắt buộc).
let index:Index = hello.startIndex.advancedBy(6)
Thứ hai: Gọi removeAtIndex() và vượt qua nó index chỉ tạo của chúng tôi. (Chú ý nó sẽ trả về các nhân vật trong câu hỏi)
let choppedChar:Character = hello.removeAtIndex(index)
print(hello)
// in chào orld!
print(choppedChar)
// in w
- 1. Xóa n ký tự khỏi đầu chuỗi
- 2. Xóa N ký tự đầu tiên khỏi chuỗi
- 3. Xóa ký tự đơn lẻ khỏi chuỗi?
- 4. Xóa hai ký tự khỏi chuỗi
- 5. jQuery xóa ký tự '-' khỏi chuỗi
- 6. C++ Xóa ký tự khỏi chuỗi bằng STL
- 7. Xóa ký tự khỏi chuỗi trong tiêu chuẩn C
- 8. Xóa các ký tự trùng lặp khỏi chuỗi
- 9. tạo chuỗi ký tự N
- 10. Xóa ký tự khỏi chuỗi nếu ký tự bắt đầu bằng ký tự đó?
- 11. Xóa ký tự cuối cùng khỏi chuỗi trong sql plus
- 12. Xóa ký tự cuối cùng khỏi chuỗi (Python)
- 13. xóa ký tự alpha và khoảng trắng khỏi chuỗi
- 14. Java: Xóa các ký tự đặc biệt lạ khỏi Chuỗi
- 15. cách xóa 3 ký tự đầu tiên khỏi chuỗi nsstring?
- 16. Python/Xóa ký tự đặc biệt khỏi chuỗi
- 17. Xóa nhiều loại ký tự khỏi một chuỗi
- 18. Powershellv2 - xóa các ký tự x cuối cùng khỏi chuỗi
- 19. Xóa ký tự và mọi thứ Sau chuỗi từ
- 20. Xóa ký tự sau chuỗi?
- 21. Xóa các ký tự N cuối cùng khỏi trường trong cơ sở dữ liệu SQL Server
- 22. Chỉ thay thế thể hiện thứ n của ký tự
- 23. Xóa ký tự không phải số và không phải ký tự khỏi một chuỗi?
- 24. Tách chuỗi mỗi n ký tự
- 25. Xóa ký tự sau ký tự cụ thể trong chuỗi, sau đó xóa chuỗi con?
- 26. Xóa ký tự khỏi đầu ra grep
- 27. Xóa ký tự cuối cùng khỏi NSMutableString
- 28. cách xóa ký tự khỏi edittext?
- 29. Xóa mọi thứ giữa hai ký tự
- 30. Xóa \ n hoặc \ t khỏi một chuỗi đã cho
Thay vì kiểm tra * chiều dài trước *, một cách khác có thể sử dụng 'để index = trước (s.startIndex, 5, s.endIndex); if index! = s.endIndex {s.removeAtIndex (index)} '. –
Điểm tuyệt vời. Theo cách nó sẽ tốt đẹp nếu nó trả về một tùy chọn tương tự như 'find', nhưng tôi đoán điều đó có nghĩa là nó sẽ hữu ích hơn trong trường hợp' end' là một chỉ mục hợp pháp mà bạn muốn đưa vào thay vì kết thúc -inđược gửi. –
Có. [Ở đây] (http://stackoverflow.com/a/26691258/1187415) là một ví dụ đơn giản mà thực tế được sử dụng mà phương thức 'advance()' này trả về một chỉ mục hợp lệ (không bắt buộc). –