2016-02-19 54 views
1

我正在搜索數組中的字符串的一部分,但我不知道包含該字符串的那部分內容。 之後,我也需要這個字符串的位置。 我有以下代碼:查找數組中未知字符串的位置

string Cuvant = "+NATURAL,,"; 

    string[] prefixes = { "/", "+", ",", "’’", "「", "」", ",," }; 
    string str = ""; 

    if (prefixes.Any(prefix => Cuvant.StartsWith(prefix))) 
    { 
     // Strip the first character from string 
     str = Cuvant.Substring(1); 

     // Search the end of string in prefixes 
     if (prefixes.Any(prefix => str.EndsWith(prefix))) 
     { 
     // Strip the last character from string 
     // here I need to know if the end found in prefixes is more than a character 
     str = str.Substring(0, str.Length -1); 
     } 
    } 

我選擇,如果不使用...別的,因爲前綴,在未來,可以有更多的話,它有現在。

+0

對於這個「+ NATURAL ,,」字符串,您期望結果爲「NATURAL」? –

+0

這看起來像一個XY問題。你能否描述你想達到的目標,因爲我相信有更好的方法。要回答我認爲你的要求,請看看https://msdn.microsoft.com/en-us/library/system.string.indexof(v=vs.110).aspx –

回答

1

如果我明白你的問題,你正在尋找的東西,將通過在開始和結束刪除無效字符來清理您的字符串。

就用Trim這樣的:

string cuvant = "+NATURAL,,"; 

char[] prefixes = { '/', '+', ',', '’', '「', '」', ',' }; 

cuvant = cuvant.Trim(prefixes); 

注意prfixes陣列成爲char類型的數組。

+0

謝謝,這是我在尋找什麼。我忘了修剪(char [])。 – Dragos