문제
나는 이런 줄을 가지고있다
String str = "dfdsfdsf8fdfdfd9dfdfd4"
배열을 통해 루핑하여 문자열에 숫자가 포함되어 있는지 확인해야합니다.
해결책
정규 표현은 어떻습니까 :
bool val = System.Text.RegularExpressions.Regex.IsMatch(str, @"\d");
다른 팁
정수 값을 찾고 있다면 사용할 수 있습니다. int.tryparse:
int result;
if (int.TryParse("123", out result))
{
Debug.WriteLine("Valid integer: " + result);
}
else
{
Debug.WriteLine("Not a valid integer");
}
소수점 번호를 확인하려면 int.tryparse를 대체하십시오 10 진수. 이 블로그 게시물과 의견을 확인하십시오 "C#에서 tryparse ()를 사용해야하는 이유" 자세한 내용은.
소수점 숫자가 필요한 경우이 정규 표현식을 대안으로 사용할 수 있습니다.
return System.Text.RegularExpressions.Regex.IsMatch(
TextValue, @"^-?\d+([\.]{1}\d*)?$");
그리고 마지막으로 또 다른 대안 (종교적으로가 아니라면 vb.net에 대해), Microsoft.visualBasic 네임 스페이스에서 메소드를 사용할 수 있습니다.
Microsoft.VisualBasic.Information.IsNumeric("abc");
문자열을 통해 루프를하려면 int.tryparse를 사용하지 마십시오 ... 너무 무겁습니다. 대신 char.isnumber ()를 사용하십시오.
예시:
foreach (char c in myString)
if (char.IsNumber(c))
return true;
str.ToCharArray().Any(x => char.IsNumber(x));
Kamals의 일부를 결합하여 대답과 Tristars 답변을 제공합니다 ...
str.Any(char.IsNumber)
내가 생각하는 대신 가장 간결하고 읽을 수있는 방법이라고 생각합니다.
당신이 나와 같은 Linq 중독자라면 이렇게 할 것입니다.
string s = "abc1def2ghi";
bool HasNumber = (from a in s.ToCharArray() where a >= '0' && a <= '9' select a).Count() > 0;
C# 2.0에서는 다음과 같습니다.
string str = "dfdsfdsf8fdfdfd9dfdfd4";
for (int i = 0; i < str.Length; i++)
{
int result;
if (int.TryParse(str[i].ToString(), out result))
{
//element is a number
}
else
{
// not a number
}
}
str.ToCharArray().Any(char.IsNumber)
제휴하지 않습니다 StackOverflow