public class Solution {
public boolean isIsogram(String str) {
// TODO : 같은 문자가 있는지 확인 하는 문제이다.
//소문자로 바꾼다.
str = str.toLowerCase();
//str의 각 문자요소를 문자형 배열로 변환한다.
char[] arr = str.toCharArray();
//향상된 for문을 통해 비교를 하고 같으면 false를 리턴
for(char ch : arr){
if(str.indexOf(ch) != str.lastIndexOf(ch)) {
return false;
}
}
return true;
}
}
toCharArray(): 문자열을 char형 배열로 바꿔줌
indexOf(): 앞에서부터 검색할 값을 찾음
lastIndexOf(): 끝에서부터 검색할 값을 찾음
indexOf() 메서드는 앞에서부터 끝까지 검색할 값을 찾는데, 못찾을 시 -1를 반환한다.
if(str.indexOf(ch) != str.lastIndexOf(ch)) : != 같지 않을 경우를 썼는데, 'isogram'을 인자로 받게 되면 검색한 값이 없기 때문에 str.indexOf(ch)와 str.lastIndexOf(ch) 은 -1을 반환하게 되고 둘의 값은 같기 때문에 return false가 실행되지 않는다.