문제

나는 이런 줄을 가지고있다

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)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top