2014-05-15 40 views
0

也許這是一個愚蠢的問題。但我還沒有找到答案。 我有一些字符串。我想連接它們,然後在不同的時刻分割結果字符串。我想知道在.NET Framework中是否有可用的東西。 String的Join和Split方法工作得很好。問題是逃避分隔符。連接和拆分字符串

例如,我想使用「@」作爲分隔符。如果我有「String1」,「Str @ ing2」和「String3」,我想獲得「String1 @ Str @@ ing2 @ String3」。

有什麼能做到我需要或做的事情我必須編寫自己的功能嗎?

謝謝。

+0

你會有一個空字符串,可能導致兩個「@」彼此相鄰嗎? –

+0

你是否應該使用CSV庫? –

+0

@ChrisHaas,我可以避免這種情況。沒有CSV庫。 – ufo

回答

2

就逃跑途中分離器。

var inputs = ["String1", "[email protected]", "String3"]; 
var joined = string.Join(inputs.Select(i => i.Replace("@", "@@")); 

您可以再拆單@字符。

var split = Regex.Split(joined, "(?<[email protected])@([email protected])"); 

這使用零寬度負回顧後/超前patterns前後@不是另一個@斷言的字符。但是,對於@位於輸入字符串的開頭或結尾的情況,您應該運行一些測試。

+0

當我分裂? – ufo

+0

@ufo - 當你分裂時你想要發生什麼? –

+0

僅在出現一個「@」時纔會分割。你最後的編輯似乎回答了我的問題。謝謝。 – ufo

0

每個字符串呼叫.Replace("@", "@@")之前將它們傳遞給.Join