본문 바로가기

Algorithm/Programers - Java

[프로그래머스] 문자열을 정수로 바꾸기 / valueOf , int와 Integer

 

Level. 1

 

 

문제

 

풀이

 

class Solution {
    public int solution(String s) {
        int answer = 0;
        Boolean sign = true;
        //answer = Integer.valueOf(s);
        for(int i=0; i< s.length(); i++){
            char c = s.charAt(i);
            if(c == '-') sign = false;
            else if(c != '+') 
                answer = answer * 10 + (c-'0');
        }
        return sign==true?answer:answer*-1;
    }
}

 

Integer의 valueOf(), parseInt()를 사용하면 한 줄에 해결할 수 있으나,

API를 사용하지 않고 알고리즘을 통해 문제를 해결해보았다. 

 

valueOf(), parseInt()를 쓰면 문자열 형태로 표현된 숫자를 정수타입 값으로 변환할 수 있다. 

 

Integer.parseInt()

  • 반환값으로 int타입을 반환하다. 
  • 반환되는 값은 객체가 아닌 기본 자료형 (Primitive Type)이다. 

Integer.valueOf()

  • 문자열의 값을 정수형으로 변환한 다음 Integer객체로 만들어서 반환한다. 리턴하는 값은 integer객체이다.  
  • new Integer(Integer.parseInt(s)) 값이 리턴된다. 

 

 

 

 참고 추가내용 

 

int 와 Integer의 차이

int (primitive type / 기본자료형)

  • int 는 변수의 타입 (data type)이다.
  • 변수는 '값을 저장할 수 있는 메모리 상의 공간'을 의미한다. 
  • 자료형은 data의 타입에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이며, 기본형(primitive type) 참조형(reference type)으로 나뉜다.
    • 기본 자료형(원시타입)
      - boolean, char, byte, short, int, long, float, double
    • 참조형(참조타입)
      - class, interface

Integer (wrapper class)

  • 프로그래밍을 하다면 기본타입의 데이터를 객체로 표현하는 경우가 종종 있는데, 기본타입을 객체로 다루기 위해 사용하는 클래스들을 래퍼클래스(wrapper class)라고 한다. 
  • Integer는 int의 레퍼클래스이다. 
    • wrapper class
      - Integer, Double, Float, Long, Shot, Byte, Character, Boolean

 

 

int와 Integer의 차이점

int

  • 자료형이다.
  • 산술 연산이 가능하다.
  • null로 초기화가 불가능하다. 주로 0으로 초기화한다. 

Integer

  • unboxing(wrapper class -> primitive type 변환) 하지 않을경우 산술연산이 불가능하다.
  • null값 처리가 가능하다. 따라서 SQL과 연동할 경우 처리가 용이하다. 

 

wrapper class - primitive type 간의 변환

Boxing

Primitive Type -> Wrapper class

Integer a = new Integer(10);

 

Unboxing

Wrapper class -> Primitive Type

int b = a.intValue();

 

JDK 1.5 부터는 이를 자바 컴파일러가 자동으로 처리해 주기 때문에 신경 쓰지 않아도 된다. 

 

 

 

 


https://velog.io/@hadoyaji/int%EC%99%80-Integer%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%A4%EB%A5%B8%EA%B0%80

 

int와 Integer는 무엇이 다른가

int와 Integer는 무엇이 다른가 // 기본부터 다시 시작하기

velog.io

https://sudo-minz.tistory.com/69

 

int와 Integer 차이 (Primitive 자료형과 Wrapper 클래스 관계)

int 와 Integer 차이 (Primitive 자료형 - Wrapper 클래스 관계) 1. Wrapper 클래스 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나뉜다. 기본 타입은 byte, char, short, int, long, float,

sudo-minz.tistory.com