C# 문자열이 숫자인지 식별

Minahil Noor 2023년10월12일
  1. Enumerable.All()메소드를 사용하여string이 숫자인지 식별하는 C# 프로그램
  2. Regex.IsMatch()를 사용하여string이 숫자인지 식별하는 C# 프로그램
  3. C#Int32.TryParse() 방법을 사용하여 문자열이 숫자인지 식별
  4. C#foreach 사이클을 사용하여 문자열이 숫자인지 식별
C# 문자열이 숫자인지 식별

현실세계에서의 문제를 다룰 때 우리는 입력을 문자열로 사용하고 그것을 정수로 사용하기를 원한다.그것이 가능하도록 하기 위해서 우리는 항상 입력한 문자열이 숫자인지 확인해야만 한다.

C#에서 우리는 입력 문자열이 숫자인지 여부를 식별하기 위해 많은 방법을 사용할 수 있다.

Enumerable.All()메소드를 사용하여string이 숫자인지 식별하는 C# 프로그램

Enumerable.All()메소드는LINQ에 속합니다. LINQ는 C#의 일부이며 다른 데이터베이스 및 데이터 소스에 액세스하는 데 사용됩니다. string이 숫자인지 확인하기 위해이 메소드를 수정할 수 있습니다. char.IsDigit()메소드를 Enumerable.All()메소드에 매개 변수로 전달합니다.

이 방법을 사용하는 올바른 구문은 다음과 같습니다.

StringName.All(char.IsDigit);

예제 코드:

using System;
using System.Linq;

public class IdentifyString {
  public static void Main() {
    string number = "123456";
    if (number.All(char.IsDigit)) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

출력:

The Given String is a Number.

Regex.IsMatch()를 사용하여string이 숫자인지 식별하는 C# 프로그램

C#에서는 ‘정규 표현식’을 사용하여 다양한 패턴을 확인할 수 있습니다. ‘정규 표현식’은 특정 동작을 수행하기위한 특정 패턴입니다. C#에는^[0-9]+$^\d+$정규식이있어string이 숫자인지 확인합니다.

이 방법을 사용하는 올바른 구문은 다음과 같습니다.

Regex.IsMatch(StringName, @"Expression");

예제 코드:

using System;
using System.Text.RegularExpressions;

public class IdentifyString {
  public static void Main() {
    string number = "123456";
    if (Regex.IsMatch(number, @"^[0-9]+$")) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

출력:

The Given String is a Number.

여기서 중요한 점은 두 개의 ‘정규 표현식’인^[0-9]+$^\d+$가 기능상 동일하지 않다는 것입니다. ^[0-9]+$는 기본 0-9 문자에 사용되지만^\d+$ 유니코드에 사용되는 십진법 숫자RegexOptions.ECMAScript 카테고리를 지정하지 않았습니다., 태국어에서4로도 숫자로 식별됩니다.

C#Int32.TryParse() 방법을 사용하여 문자열이 숫자인지 식별

Int32.TryParse()메소드는 숫자의 문자열을 32 비트 부호있는 정수 로 변환하는 데 사용됩니다. 문자열이 숫자가 아닌 경우 성공적으로 변환되지 않으므로이 메소드는 false를 리턴합니다.

이 방법을 사용하는 올바른 구문은 다음과 같습니다.

Int32.TryParse(StringName, out intvariable);

여기서 intvariable은 초기화되지 않은 정수변수입니다.

예제 코드:

using System;

public class IdentifyString {
  public static void Main() {
    int n;
    string number = "123456";
    bool result = Int32.TryParse(number, out n);
    if (result) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

출력:

The Given String is a Number.

C#foreach 사이클을 사용하여 문자열이 숫자인지 식별

이것은 ‘문자열’이 숫자인지 식별하는 가장 기본적인 프로세스입니다. 이 과정에서 우리는foreach 루프를 사용하여string의 모든 문자가 숫자인지 검사합니다.

foreach 루프를 사용하는 올바른 구문은 다음과 같습니다.

foreach (datatype variablename in somecollection) {
  // steps to iterate
}

예제 코드:

using System;

public class IdentifyString {
  // custom method to check if a string is a number
  public static bool CustomMethod(string number) {
    foreach (char c in number) {
      if (c >= '0' && c <= '9') {
        return true;
      }
    }
    return false;
  }
  public static void Main() {
    string number = "123456";
    if (CustomMethod(number)) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

출력:

The Given String is a Number.

관련 문장 - Csharp String