2015-04-30 35 views
2

我已將圖像添加到文本字段,並希望再次刪除它。我試過以下兩行無濟於事?如何從Swift中的字符串中刪除「 U0000fffc」?

string = string.stringByReplacingOccurrencesOfString("\\U0000fffc", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil) 
string = string.stringByReplacingOccurrencesOfString("\U0000fffc", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil) 

任何幫助將不勝感激,非常感謝!

+0

你們是不是要取代文字序列「\ U0000fffc',或Unicode字符U + FFFC? –

+0

我在猜測Unicode字符嗎?我添加了一個圖像到文本框,並且希望再次移除它。 –

+0

請顯示結果'println(string.dataUsingEncoding(NSUTF32BigEndianStringEncoding)!)',以便我們可以看到字符串實際包含的內容。 –

回答

7

Unicode轉義序列是不同的方式在夫特從那些在Objective-C,該Unicode字符U+FFFC轉義爲\u{fffc}

這是您的字符串:

var string = "Hello\n\n\u{fffc}" 
println(string.dataUsingEncoding(NSUTF32BigEndianStringEncoding)!) 
// <00000048 00000065 0000006c 0000006c 0000006f 0000000a 0000000a 0000fffc> 

現在刪除所有U+FFFC個字符:

string = string.stringByReplacingOccurrencesOfString("\u{fffc}", withString: "") 
println(string.dataUsingEncoding(NSUTF32BigEndianStringEncoding)!) 
// <00000048 00000065 0000006c 0000006c 0000006f 0000000a 0000000a> 

注意options:range:是可選的參數,在這種情況下沒有必要 。


更新斯威夫特3/4:

var string = "Hello\n\n\u{fffc}" 
print(string.data(using: .utf32BigEndian)! as NSData) 
// <00000048 00000065 0000006c 0000006c 0000006f 0000000a 0000000a 0000fffc> 

string = string.replacingOccurrences(of: "\u{fffc}", with: "") 
print(string.data(using: .utf32BigEndian)! as NSData) 
// <00000048 00000065 0000006c 0000006c 0000006f 0000000a 0000000a> 
+0

順便說一下,U + FFFC是「OBJECT REPLACEMENT CHARACTER」,所以我想知道它是如何進入字符串的。 –

2

方法stringByReplacingOccurrencesOfString可以處理字符串的部分或整個字符串。

例如,這適用於整個字符串,通過給它從字符串的開始到結束的範圍內:

let original = "First part \\U0000fffc Last part" 

let originalRange = Range<String.Index>(start: original.startIndex, end: original.endIndex) 

let target = original.stringByReplacingOccurrencesOfString("\\U0000fffc", withString: "", options: NSStringCompareOptions.LiteralSearch, range: originalRange) 

println(target) // prints "First part Last part" 
+0

這似乎不起作用 –

+0

「\ U0000fffc」因爲插入圖像而添加到字符串中,是否更改它如何被刪除? –

+0

基本上,我添加了一個圖像到文本框,並希望再次刪除它。 –