2016-05-12 66 views
-9

我如何找到最长的子字符串中没有数字字符串中的字母数字字符在C#中。例如,如果一个字符串是a1bcd2,我如何提取bcd?我如何找到最长的子字符串中没有数字字符串中的字母数字字符在C#

+0

通过它循环,计数长度,检查以前最长的子串,更新,重复... –

+6

耻辱。你现在应该知道你的代表。你有什么尝试?你研究了什么?如何在不知道这些基本规则的情况下获得代表? –

+0

到目前为止您尝试了什么? 'Regex.Matches(,“[A-Za-z] *”)。演员().Select(x => x.Value).OrderByDescending(x => x.Length).First()'也许。 –

回答

5

你可以使用LINQ这样做,例如,

"a1bcd2".Split('0', '1', '2', '3', '4', '5', '6', '7', '8', '9') 
     .OrderByDescending(s => s.Length) 
     .FirstOrDefault(); 

这是最简单的编写解决方案,虽然它当然没有任何性能,但可能已经足够好了。

-3

我写了一个可以为你做的功能。我没有测试过,但它应该给你一个粗略的想法。

public static string GetCharOnly(string str) 
    { 
     if (String.IsNullOrEmpty(str)) 
      return string.Empty; 

     var result = new StringBuilder(); 
     foreach (char c in str) 
     { 
      if (!Char.IsDigit(c)) 
       result.Append(c); 
     } 
     return result.ToString(); 
    } 

而且你可以使用它像这样:

var returnString = GetCharOnly("a1bcd2"); 

编码愉快。

+4

这与问题无关 –

相关问题