문제: 두 개의 문자열을 입력받아 대소문자를 구분하지 않고(case insensitive) 서로 같은지 여부를 리턴하라
- 인자 str1, str2
- boolean 타입 리턴
str1과 str2가 서로 같은지 판단하기 위해서는 서로를 비교하는 메서드를 사용하면 좋을 것 같다.
서로를 비교하는 메서드는 .equals()메서드다.
따라서 최종적인 형태는 str1.equals(str2)가 될 것이다.
그렇다면 str1.equals(str2)를 담는 변수를 지정해야겠다. boolean 타입으로 리턴하라고 했으니
boolean compare = str1.equals(str2); 라고 해도 좋을 것 같다.
최종적으로 return compare이 된다.
하지만, 우리의 str1,2가 대문자인지 소문자인지 알 수가 없다. 따라서 대문자든 소문자든 하나로 통일해주자
str1=str2.toUpperCase();
str2=str2.toUpperCase(); 요렇게 하면 될 것이다.
public class Solution {
public boolean compareOnlyAlphabet(String str1, String str2) {
// TODO:
str1=str1.toUpperCase();
str2=str2.toUpperCase();
return str1.equals(str2);
}
}
문제에서는 boolean 타입이 선언되어 있어서 생략했다.
부족했던 부분
대소문자를 구분하지 않고 서로 같은지 구분하는 방법에 접근하기가 어려웠다. 그러나,
첫째, 대소문자를 어떻게 통일할까?
두번째, 서로를 어떻게 비교할까?
세번째, 리턴은 변수를 지정해서 할까 아니면 그냥할까?
하나하나 뜯어서 생각해보니 정답으로 가는 실마리를 하나씩 도출해 낼 수 있었다.
대문자든 소문자든 한쪽으로 통일하였고
equals()라는 메서드를 사용하게 됐다.
boolean 타입이 선언되지 않았다면 변수를 새로 만들었겠지만 이미 만들어져 있어서 바로 return 했다.
슈도코드를 작성하고 코드를 작성하듯이 하나하나 뜯어서 코드를 작성하는 것도 하나의 방법이 될 수도 있다는 것을 깨닫게 되었다.
'개발일지 > Trouble Shooting' 카테고리의 다른 글
[ 문제 해결 ] H2에 접근이 안되는 이유?! (0) | 2022.12.01 |
---|---|
[문제해결] mapstruck build오류 해결 (매우 짧은 글) (0) | 2022.11.21 |
[ 문제 해결 ] PasswordEncoder' that could not be found. (0) | 2022.11.21 |
[ 오류 해결 ] HTTP 400, 404, 500 도대체 누구냐 넌?! (0) | 2022.11.17 |
[문제 회고] 조건문 (0) | 2022.09.01 |