2015-05-08 56 views
1

我想取出部分字符串和後綴,並將其保存爲新字符串。如何在swift中取出部分字符串

var key = "Optional("rFchd9DqwE")" 

所以我的字符串現在等於可選(「rFchd9DqwE」)。現在我想從這個字符串中取出rFchd9DqwE部分,並將其保存回變量「key」中。有沒有簡單的方法來做到這一點?

+0

你可能會想要使用正則表達式或子字符串。這是一個[在子字符串上的帖子](http://stackoverflow.com/questions/28182441/swift-how-to-get-substring-from-start-to-last-index-of-character)。 –

+2

你最好弄清楚爲什麼你在字符串中有「可選」。很可能你以前沒有打開可選的值。 –

回答

3

如果你有這樣的代碼:

var aString: String? = "rFchd9DqwE" 

let b = "\(aString)" 

那麼問題是,你做錯了。輸出中的「Optional()」位告訴您,您傳入的是可選類型而不是字符串類型。

你應該做的就是這樣的事情,而不是:

var aString: String? = "rFchd9DqwE" 

if let requiredString = aString 
{ 
    let b = "\(requiredString)" 
} 

的「如果讓」一部分被稱爲「可選的結合」。它將aString從可選項轉換爲常規String對象,並將結果保存在新常量requiredString中。如果aString包含一個零,則大括號內的代碼被跳過。

另一種方式來做到這一點是使用了無合併運算符:

var aString: String? = "rFchd9DqwE" 

let b = "\(aString ?? "")" 

aString ?? ""返回ASTRING的字符串值,如果它不是零,或者??如果後值替換它的結構無。在這種情況下,它將用空白替換零。

+0

謝謝你的回答,但問題已經解決! –

+1

這就是所謂的「[** XY問題。**](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)」Eric D.給了你一個解決方案回答你問的問題,但是這是一個錯誤的方法。 –

+0

@PascalAckermann問題真的沒有解決。你需要接受另一個答案。這樣做是非常錯誤的。 – Fogmeister