[Java] 코딩테스트 기초 문법 - 1

DEINGVELOP·2022년 8월 5일
0

문자열을 정수로 바꾸기

String을 Integer로 변경하는 것이다. 이는 아래와 같은 메소드들을 알면 아주 간단히 해결할 수 있다.

  • Integer.parseInt() : 원시데이터인 int 타입을 반환
  • Integer.valueOf() : Integer wrappee(래퍼) 객체를 반환

🙋🏻‍♂️ 메소드를 모를 땐?

public class StrToInt {
    public int getStrToInt(String str) {
            boolean Sign = true;
            int result = 0;

      for (int i = 0; i < str.length(); i++) {
                char ch = str.charAt(i);
                if (ch == '-')
                    Sign = false;
                else if(ch != '+')
                    result = result * 10 + (ch - '0');
             }
            return Sign?1:-1 * result;
    }
}
  • public int 함수명() {} : int형을 반환하는 함수
  • boolean Sign = true; : 부호를 기본적으로 true로 설정
  • .length() : 문자열의 길이 구하기
  • .charAt(i); : 문자열 중 i번째 인덱스 문자를 char로 변환
  • sign?1:-1 :



char

char : 기본형 변수 : 단 한 글자만 저장할 수 있는 변수

  • .charAt(index) : String으로 저장된 문자열 중 index가 가리키는 문자를 char 타입으로 변환

char의 사칙연산

다른 피연산자의 타입에 따라 달라짐

👉🏻 유니코드 계산 : 각 문자에 부여된 유니코드 값으로 계산이 이루어짐

  • char + int : 유니코드 반환

  • char - int : Error

  • int + char : 유니코드 반환

  • int - char : Error

  • char + char : 유니코드 반환

  • char + char : 유니코드 반환

따라서 위 문제의 result = result * 10 + (ch - '0');를 뜯어보면,

  • result = result * 10 : int형 = int형 10 => 일반 숫자 계산*

  • (ch - '0') : char형 - char '0' => 유니코드값으로 계산

이 된 것을 확인할 수 있다.


삼항 연산자

단순한 조건문의 코드라인을 획기적으로 줄일 수 있는 연산 방식
코드라인이 의미 없이 길어질 수 있는 경우를 방지할 수 있다.

문법 : 조건문 ? 참일때 : 거짓일 때 ;

이해를 위해 예시를 들어보자.

int a = (5 < 4) ? 50 : 40;

이 조건문이 참일 경우 int a에 50이 담기고, 거짓일 경우 a에는 40이 담기게 된다.

💡 주의 사항

  • 삼항연산자를 사용하여 코드라인을 줄였다고 해서, 컴파일 속도가 빨라지는 것은 아님
  • 삼항연산자를 중복해서 처리할 경우 가독성이 떨어질 수 있음


참고자료

0개의 댓글