문제 포인트
- 문자열은 영어 알파벳으로만 구성되어있다.
- 영어 대소문자를 구분하지 않는다
풀이
대소문자를 구분하지 않는다면 첫번째 줄에서 입력받은 문자열과, 두번째 줄에서 입력받은 문자를 모두 대문자 or 소문자로 바꿔서 통일시켜줘야한다.
package 섹션1_String;
import java.io.*;
public class 문자찾기 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str= br.readLine().toUpperCase(); // 문자열
char c= br.readLine().toUpperCase().charAt(0); // 찾고자 하는 문자
int answer=0; // 찾고자하는 문자가 나온 횟수
for(char strChar:str.toCharArray()){
if(strChar==c){
answer++;
}
}
System.out.println(answer);
br.close();
}
}
for문을 이용한 문자열 비교
for(int i=0;i<str.length();i++){ // 문자열의 길이만큼 반복
if(c==str.charAt(i)){
answer++;
}
}
✅ == 연산
String이나 Character 처럼 객체를 ==로 비교하게 되면, 값 뿐만 아니라 인스턴스의 주소도 비교하기 때문에 값이 같아도 다른 객체인 경우(인스턴스의 주소가 다른경우) false 값이 나오게 된다. 따라서 문자열에서 단순히 값만 비교하고 싶은 경우 eqauls( ) 를 사용해야한다.
하지만 int,boolean,char 과 같은 원시타입의 경우 == 를 사용하게 된다면 단순히 값만 비교한다.
'알고리즘 > 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비' 카테고리의 다른 글
1-7 회문 문자열 (0) | 2025.05.01 |
---|---|
1-6 중복 문자 제거 (1) | 2025.04.09 |
1-5 특정 문자 뒤집기 (0) | 2025.04.09 |
1-3 문장 속 가장 긴 단어 (0) | 2025.04.08 |
1-2 대소문자 변환 (1) | 2025.04.07 |