2017-05-09 66 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; 
    } 
}