C #에서 문자열을 정수로 어떻게 변환합니까?
답변:
올바르게 구문 분석 할 것이라고 확신하는 경우
int.Parse(string)
그렇지 않은 경우
int i;
bool success = int.TryParse(string, out i);
주의! 아래의 경우 i
는 TryParse
.
int i = 10;
bool failure = int.TryParse("asdf", out i);
이는 ref 매개 변수가 아닌 out 매개 변수를 TryParse
사용 하기 때문 입니다.
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;
}
문자열에 "실제"숫자가 있다고 확신하거나 발생할 수있는 예외에 익숙하다면 이것을 사용하십시오.
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;
}
가장 빠른 방법은 다음과 같습니다.
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s"는 int로 변환하려는 문자열입니다. 이 코드는 변환 중에 예외가 없다고 가정합니다. 따라서 문자열 데이터가 항상 일종의 int 값이라는 것을 알고 있다면 위의 코드가 순수한 속도로 이동하는 가장 좋은 방법입니다.
결국 "y"는 int 값을 갖습니다.
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 #의 정수