C #에서 문자열을 정수로 변환하는 방법


답변:


134

올바르게 구문 분석 할 것이라고 확신하는 경우

int.Parse(string)

그렇지 않은 경우

int i;
bool success = int.TryParse(string, out i);

주의! 아래의 경우 iTryParse.

int i = 10;
bool failure = int.TryParse("asdf", out i);

이는 ref 매개 변수가 아닌 out 매개 변수를 TryParse사용 하기 때문 입니다.


2
@sslaitha, 감사합니다. 질문에 충분히 답이 되었으면 답으로 표시하는 것을 잊지 마십시오.
Brandon

3
int i = 10; 사용 int.TryParse ( "asdf", out i); 내가 10이 아닌 0을 포함 할 것입니다 !!! 이것은 TryParse가 ref가 아닌 out 변수를 사용하기 때문입니다.
CaffGeek 2010 년

2
"주의"는 두 번째 예가 아니라 세 번째 예에 적용됩니다. "this"가 아래가 아닌 위의 예를 참조 할 것으로 예상했기 때문에 조금 당황했습니다.
peter_mcc 2014

22
int myInt = System.Convert.ToInt32(myString);

몇 가지 다른 언급 한 것처럼, 당신은 또한 사용할 수 있습니다 int.Parse()int.TryParse().

string이 항상 다음과 같다고 확신하는 경우 int:

int myInt = int.Parse(myString);

string실제로 int첫 번째 인지 확인하려면 :

int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value
if (isValid)
{
    int plusOne = myInt + 1;
}

10
int a = int.Parse(myString);

또는 더 나은 방법은 int.TryParse(string)


6
string varString = "15";
int i = int.Parse(varString);

또는

int varI;
string varString = "15";
int.TryParse(varString, out varI);

int.TryParse다른 것을 넣으면 varString(예 : "fsfdsfs") 예외가 발생 하므로 더 안전 합니다. int.TryParse문자열을 int로 변환 할 수 없을 때 사용 하면 0.


5

문자열에 "실제"숫자가 있다고 확신하거나 발생할 수있는 예외에 익숙하다면 이것을 사용하십시오.

string s="4";
int a=int.Parse(s);

프로세스를 좀 더 제어하려면

string s="maybe 4";
int a;
if (int.TryParse(s, out a)) {
    // it's int;
}
else {
    // it's no int, and there's no exception;
}


3
int i;
string whatever;

//Best since no exception raised
int.TryParse(whatever, out i);

//Better use try catch on this one
i = Convert.ToInt32(whatever);

2

여기서는 4 가지 기술이 벤치마킹되었습니다.

가장 빠른 방법은 다음과 같습니다.

y = 0;
for (int i = 0; i < s.Length; i++)
       y = y * 10 + (s[i] - '0');

"s"는 int로 변환하려는 문자열입니다. 이 코드는 변환 중에 예외가 없다고 가정합니다. 따라서 문자열 데이터가 항상 일종의 int 값이라는 것을 알고 있다면 위의 코드가 순수한 속도로 이동하는 가장 좋은 방법입니다.

결국 "y"는 int 값을 갖습니다.


2
bool result = Int32.TryParse(someString, out someNumeric)

이 방법은 변환을 시도합니다 someString으로 someNumeric하고, 반환 result변환이 성공하면 따라 true변환이 성공적 경우 false변환이 실패합니다. 이 메서드는 메서드가 수행 한 것처럼 변환이 실패한 경우 예외를 throw Int32.Parse하지 않고 대신 someNumeric.

자세한 내용은 여기에서 읽을 수 있습니다.

https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

문자열을 다음으로 변환하는 방법 C #의 정수


0
int i;

string result = Something;

i = Convert.ToInt32(result);

0

둘 중 하나를 사용할 수 있습니다.

    int i = Convert.ToInt32(myString);

또는

    int i =int.Parse(myString);

0
class MyMath
{
    public dynamic Sum(dynamic x, dynamic y)
    {
        return (x+y);
    }
}

class Demo
{
    static void Main(string[] args)
    {
        MyMath d = new MyMath();
        Console.WriteLine(d.Sum(23.2, 32.2));
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.