프로그래머스 코딩테스트 연습

[프로그래머스 코테 C#] Lv0. 문자열을 정수로 변환하기

노재두내 2024. 3. 11. 11:05

<문제 >

숫자로만 이루어진 문자열 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 문서에 나와있는 내용 

더보기
더보기

TryParse(String, Int32)

숫자의 문자열 표현을 해당하는 32비트 부호 있는 정수로 변환합니다. 반환 값은 변환의 성공 여부를 나타냅니다.

요렇게 여러가지 방법이 있다 .

 

 

 

 


※참고 ※

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)

 

참고한 블로그

https://2-nan.tistory.com/43

 

C# - Convert vs Parse vs TryParse

안녕하세요. 2nan 입니다. 여러분들은 int 형, double 형 등등... 숫자로 형 변환을 할때 어떤 방식으로 변환 하시나요?? 저는 대부분의 경우 Parse 를 사용해 왔습니다. 특별한 이유가 있는것은 아니고

2-nan.tistory.com

 

댓글수0