如果我有这个字符串:
12345
= true
123a45
= false
abcde
= false
如何在C#中做到这一点?
答案 0 :(得分:6)
Regex.IsMatch(sinput,@"\d+");
匹配仅包含数字的字符串。 如果您忘记了问题中的可选数字, 用这个:
Regex.IsMatch("+12345", @"[+-]?\d+");
答案 1 :(得分:3)
如果您想避免使用RegEx,那么您可以使用内置的char
方法:
bool allDigits = s.All(c => char.IsDigit(c));
答案 2 :(得分:0)
答案 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