如何检查我的字符串是否包含文本?

时间:2011-02-27 11:52:58

标签: c# winforms

如果我有这个字符串:

12345 = true

123a45 = false

abcde = false

如何在C#中做到这一点?

6 个答案:

答案 0 :(得分:6)

Regex.IsMatch(sinput,@"\d+"); 

匹配仅包含数字的字符串。 如果您忘记了问题中的可选数字, 用这个:

Regex.IsMatch("+12345", @"[+-]?\d+");

答案 1 :(得分:3)

如果您想避免使用RegEx,那么您可以使用内置的char方法:

bool allDigits = s.All(c => char.IsDigit(c));

答案 2 :(得分:0)

int.TryParse或long.TryParse。

您还可以将Regex用于任何长度的数字:

if (Regex.IsMatch(str, "^[0-9]+$"))
// ...

答案 3 :(得分:0)

int myNumber;
if( int.TryParse(myString, out myNumber) == true )
{
 // is a number and myNumber contains it
}
else
{
 // isn't a number
}

如果它是一个大数字,请使用long或double或....而不是int。

答案 4 :(得分:0)

这是用于仅检查C#中字符串中的字母的代码。您可以根据需要进行修改。

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string MyString = "A @string & and 2.";

            Console.WriteLine(MyString);
            for (int charpos = 0; charpos < MyString.Length; charpos++)
            {
                Console.WriteLine(Char.IsLetter(MyString, charpos));    
            }
            //Keep the console on screen
            Console.WriteLine("Press any key to quit.");
            Console.ReadKey();
        }
    }
}

答案 5 :(得分:0)

private bool ContainsText(string input)
        {
            for (int i = 0; i < input.Length; i++)
            {
                if (((int) input[i] >= 65 && (int) input[i] <= 90) || ((int) input[i] >= 97 && (int) input[i] <= 177))
                    return true;
            }

            return false;
        }

运行:

MessageBox.Show(ContainsText("abc").ToString());
MessageBox.Show(ContainsText("123").ToString());
MessageBox.Show(ContainsText("123b23").ToString());

分别返回True,False,True