[프로그래머스 코테 C#] Lv0. 문자열을 정수로 변환하기
<문제 >
숫자로만 이루어진 문자열 n_str이 주어질 때, n_str을 정수로 변환하여 return하도록 solution 함수를 완성해주세요.
<입출력 예>
"10" | 10 |
"8542" | 8542 |
저번에도 비슷한 문제를 푼게 있어서
Parse?ToInt32? 이런게 생각이 나지만 확실하게 기억나지 않았다..
answer =Parse.StringToInt32(n_str);
이렇게 썼는데 당연히 오류 !
그래서 저번 내 블로그 포스팅을 참고 했다..
이제 까먹지 말자 !!
Convert.ToInt32(문자열);
[나의 풀이]
using System;
public class Solution {
public int solution(string n_str) {
int answer = 0;
answer=Convert.ToInt32(n_str);
return answer;
}
}
테스트 통과 ~.~
다른 사람 풀이
1. int.Parse(문자열)
using System;
public class Solution {
public int solution(string n_str) {
return int.Parse(n_str);
}
}
2.Int32.Parse(문자열)
using System;
public class Solution {
public int solution(string n_str) {
int answer = Int32.Parse(n_str);
return answer;
}
}
3.int.TryParse(문자열 ,out 저장할 변수)
using System;
public class Solution {
public int solution(string n_str) {
int.TryParse(n_str, out int answer);
return answer;
}
}
c# api 문서에 나와있는 내용
요렇게 여러가지 방법이 있다 .
※참고 ※
Convert vs Parse vs TryParse
1. Convert
먼저 Convert 의 정의는 "기본 데이터 형식을 다른 기본 데이터 형식으로 변환한다." 라고 합니다. Boolean, Char, Byte, Int, Double, Decimal, String, DateTime 등등.. 이러한 형식들을 지원한다고 합니다.
string strA = "10";
string strB = "12.345";
string strC = null;
Convert.ToInt32(strA); // 10
Convert.ToInt32(strB); // FormatException
Convert.ToInt32(strC); // 0
2. Parse
Parse 는 "문자열 표현을 해당하는 형 으로 변환한다." 라고 되어있네요. ToString 과 비슷한 표현중 하나인 것 같습니다. 예를 들어 문자열을 Int 형 으로 변환하고 싶다면 Int32.Parse("문자열") 이렇게 사용하면 됩니다.
string strA = "10";
string strB = "12.345";
string strC = null;
Int32.Parse(strA); // 10
Int32.Parse(strB); // FormatException
Int32.Parse(strC); // ArgumentNullException
3. TryParse
TryParse 는 "문자열 표현을 해당하는 형 으로 변환한다. 반환 값은 변환의 성공 여부를 나타낸다." 라고 되어있습니다. Convert 와 Parse 는 단순한 값만 변환하고 반환했는데, 정의에 나와있는 것 처럼 변환의 성공 여부 즉, true 와 false 값을 반환한다는 것을 알 수 있습니다.
string strA = "10";
string strB = "12.345";
string strC = null;
int i;
Int32.TryParse(strA, out i); // true (10)
Int32.TryParse(strB, out i); // false (0)
Int32.TryParse(strC, out i); // false (0)
출처: https://2-nan.tistory.com/43 [이난의 개발자 블로그:티스토리]
==> TryParse 같은 경우에는 true/ false를 반환하기 때문에 if 문 안에도 작성할 수 있다.
API
이 메서드는 변환이 성공한 경우 s에 포함된 숫자의 32비트 부호 있는 정수 값을 반환하고, 변환이 실패한 경우 0을 반환합니다. 매개 변수가 또는 Empty이 null 올바른 형식이 아니거나 Int32.MinValue보다 작거나 Int32.MaxValue보다 큰 숫자를 나타내는 경우 s 변환이 실패합니다.(-1)
참고한 블로그
C# - Convert vs Parse vs TryParse
안녕하세요. 2nan 입니다. 여러분들은 int 형, double 형 등등... 숫자로 형 변환을 할때 어떤 방식으로 변환 하시나요?? 저는 대부분의 경우 Parse 를 사용해 왔습니다. 특별한 이유가 있는것은 아니고
2-nan.tistory.com