2017-05-09 69 views
-4

我要看看是否字符串與給定字符串開頭,但我越來越曖昧,這裏是我的代碼:歧義字符串startswith給定的字符串

string input = "balance1234"; 

string[] arr = new string[] 
{ 
    "bal", 
    "balance", 
}; 

foreach (string s in arr) 
{ 
    if (input.StartsWith(s)) 
    { 
     var rq= input.Replace(s, ""); 
    } 
} 

如果輸入的是balance1234,在if條件有隻滿足balance,但在我的代碼中,它首先滿足bal

+2

那麼你有什麼* *嘗試做修復它?提示:如果按照長度的降序對數組進行排序,那麼匹配的第一個前導子串必須是最長的一個... –

+0

爲什麼要將'bal'作爲數組中的第一項,如果你不想要它匹配? – sachin

+0

您是否想要找出解決用例的一般方法 –

回答

2

這裏是(使用飛碟雙向先生給出的提示)解決方案:

string input = "balance1234"; 

string[] arr = new string[] 
{ 
    "bal", 
    "balance", 
}; 

string rq = input; 
foreach (string s in arr.OrderByDescending(x => x.Length)) 
{ 
    if (input.StartsWith(s)) 
    { 
     rq = input.Replace(s, ""); 
     break; 
    } 
}