[英]unicode string modification failing
我正在嘗試用 unicode 字符標記一個字符串。 我無法從字符串的前面刪除 unicode 標記。 我試過了
code = String(code[prefix.endIndex...])
和
let range = code.index(code.startIndex, offsetBy:0)..<prefix.endIndex
code.removeSubrange(range)
非 unicode 標記(在前綴中)被正確刪除。 例如代碼 = "a + b" 和前綴 = "a"。 兩個語句都返回“+ b”。 但是使用 code = "← a + b" 和 prefix = "←" 上面的兩個語句都返回代碼為;
"\u{86}\u{90} a + b"
目標是刪除 ← 所以輸出應該是;
" a + b"
使用本機 unicode 兼容版本的字符移除器:
刪除和返回第一個元素:
let justFirst = code.removeFirst()
用於刪除第一個並返回剩余的字符
let allButFirst = code.dropFirst()
last
字符類似:
let justFirst = code.removeLast()
let allButFirst = code.dropLast()
您也可以將其轉換為標准Array
,然后如果您對數組感到滿意,則可以使用它:
let array = code.map { $0 }
這是標記字符串的簡單方法。 您可以從結果數組tokens
刪除您想要的任何字符。
func testTokenization() {
let input = "← a + b"
var tokens: [String] = []
for character in input {
tokens.append(String(character))
}
print(tokens)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.