반응형
Leetcode에서 알고리즘을 풀다가 오류가 났다.
char cannot be dereferenced
보통 업무를 할 땐 char type을 쓸 상황이 별로 없었다.
대부분 1글자만 받을 때도 String을 많이 사용하니까.
그리고 String을 비교할 땐 equals를 많이 썼는데, equals를 char 비교용으로 사용하려고 하니까 에러가 났다.
알게 된 점
char는 primitive 데이터 타입이어서 객체 또는 다른 함수 기능이나 속성이 없다.
내가 사용했던 equals()는 String 클래스를 위한 함수여서 char에 사용하려 했더니 오류가 난 것이었다.
이 오류를 해결하기 위해서는 char 대신 Character를 사용하거나,
char 타입일 때에도 가능한 비교방법을 사용하면 된다.
Character를 사용하려면 타입 변환을 해줘야 하는데,
char ch = 'A';
if(Character.toString(ch).equals('B')){
}
위와 같이 타입을 변환해 주면 된다.
String 클래스 타입으로 변환하는 것도 가능한데,
char ch = 'A';
if(String.valueOf(ch).equals('B'){
}
위와 같이 변환해주면 된다.
Character 클래스를 안 쓰고 char를 비교할 땐 단순히 'A' == 'B' 의 연산자를 이용하면 된다.
반응형
댓글