문자열에서 대소문자 구분 없이 특정 문자 찾기
equalsIgnoreCase()
사용public static int solution(String word, String letter) {
int answer = 0;
for(int i = 0; i < word.length(); i++) {
if(String.valueOf(word.charAt(i)).equalsIgnoreCase(letter)) {
letterCount++;
}
}
return answer;
}
기본 for문 - charAt()
로 비교
public static int solution(String word, char letter) {
int answer = 0;
word = word.toUpperCase();
letter = Character.toUpperCase(letter);
for(int i = 0; i < word.length(); i++) {
if(word.charAt(i) == letter) answer++;
}
return answer;
}
향상된 for문 - String을 toCharArray()
를 통해 문자형 배열로 전환 후 비교
public static int solution(String word, char letter) {
int answer = 0;
word = word.toUpperCase();
letter = Character.toUpperCase(letter);
for(char c : word.toCharArray()) {
if(c == letter) answer++;
}
return answer;
}
대문자는 소문자로 소문자는 대문자로 변환
public static String solution(String word) {
StringBuilder answer = new StringBuilder();
for(char c : word.toCharArray()) {
c = (char) (c < 97 ? c + 32 : c - 32);
answer.append(c);
}
return answer.toString();
}
Character.isLowerCase()
또는 Character.isUpperCase()
사용public static String solution(String word) {
StringBuilder answer = new StringBuilder();
for(char c : word.toCharArray()) {
c = Character.isLowerCase(c) ?
Character.toUpperCase(c) : Character.toLowerCase(c);
answer.append(c);
}
return answer.toString();
}
문장에서 특정 단어 찾기
split()
으로 나눠 문자열 배열 생성for (String word : sentence.split(" ")) {
...
}
indexOf()
로 공백 문자의 인덱스를 찾아 substring()
으로 자르기int index = 0;
while ((index = sentence.indexOf(' ')) != -1) {
String word = sentence.substring(0, index);
...
sentence = sentence.substring(index + 1);
}
// 마지막 단어에 대한 처리