2013-11-01 79 views
1

我正在寻找一种快速方法 - 我的问题的解决方案来检查一个字符串,如果这包含一个最小的字符。 IF字符串包含字母中的任何一个字符,然后返回true,否则为false。检查字符串的字符

public bool checkString(String s) 
{ 
    return true || false; 
} 

例如:

"1232133432454355467" return false 
"134324239846c" return true 
+2

为什么不能** String.Contains **? – Sachin

+2

你想检查一个字符串是字母数字,还是它包含多个字符?或两者?请更好地解释你自己。 –

+0

不是字母数字只是字符。 – Butters

回答

4

尝试:

using System; 
using System.Text.RegularExpressions; 

class Program 
{ 
    static void Main() 
    { 
     var r = CheckString("112"); 
     Console.WriteLine(r); // false 
     r = CheckString("112a"); 
     Console.WriteLine(r); // true 
    } 

    public static bool CheckString(String input) 
    { 
     return Regex.Match(input, @"[a-zA-Z]").Success; 
     // or, as @Vlad L suggested 
     //return Regex.IsMatch(input, @"[a-zA-Z]"); 
    } 
} 

如果您想验证反对 “的所有字母” 的Unicode字符类,用这个来代替:

return Regex.IsMatch(input, @"\p{L}"); 

参考文献nce:Supported Unicode General Categories

+1

或简单'返回Regex.IsMatch(输入,@“[a-zA-Z]”);':) – VladL

2

如果我正确理解问题......如果字符串至少包含一个字母,则返回true。

public bool checkString(String s) 
    { 
     return s.Any(x => Char.IsLetter(x)); 
    } 
1

与ToCharArray()试试这个:

public bool checkString(String s) 
{ 
    bool retValue = s.ToCharArray() 
         .Any(c => ((int)c > 64 && (int)c < 91) || 
           ((int)c > 96 && (int)c < 123)); 
    return retValue 
} 
1

刚刚完成的缘故。

// Regex to check the value consists of letters 
// with atleast 1 character 
private static Regex reg = new Regex(@"[a-zA-Z]+"); 

public bool checkString(String s) 
{ 
    return reg.Match(s).Success; 
} 
1

这是怎么回事?

if (Regex.IsMatch(yourString, "[a-zA-Z]")) 
{ 
} 
+1

叶,对不起 - 我不明白他想要什么。我更新了他的帖子后我看到了。更正 – Nickon

1
static void Main(string[] args) 
     { 
      Console.WriteLine(checkString("137563475634c756")); 
     } 
     static public bool checkString(String s) 
     { 
      return Regex.IsMatch(s, "[a-zA-Z]"); 
     } 

返回TRUE。