簡體   English   中英

unicode 字符串修改失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM