String(스트링) 01. 문자 찾기
* 사용 언어 : JAVA
* Inflearn의 자바(Java)알고리즘 문제풀이 : 코딩테스트 대비 강의내용 정리
1. 문제
한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내기.
대소문자를 구분하지 않고 문자는 영어로 제공됨
// 입력
Computercooler
c
// 출력
2
2. 풀이
먼저, 문자열을 입력받기 위해 Scanner를 호출한다.
Scanner은 Char 타입으로는 입력받을 수 없고 Stirng 타입으로 입력받을 수 있다.
기본형 변수인 char는 단 한 글자만 저장할 수 있는 변수로 Scanner로 입력을 받을 때는 String 타입으로만 받을 수 있기때문에
charAt() 함수를 통해 String 타입의 문자열의 한글자를 char타입으로 변환해준다.
입력받은 문자열은 대소문자를 구분하지 않으므로 대문자 또는 소문자로 통일해주기 위해 toUpperCase() 또는 toLowerCase()를 사용한다. 두 번째 입력받은 문자는 char 타입도 Charater Class의 toUpperCase() 또는 toLowerCase()를 사용할 수 있다.
foreach문을 사용하여 입력받은 문자열과 입력받은 문자를 비교하여 만약 같은 문자라면 answer 변수의 값을 증가시킨다.
이 때, foreach문에는 배열이나 Iterator을 제공하는 컬렉션 프레임워크인 ArrayList 등이 와야한다.
String을 탐색하기 위해서 문자 하나하나를 분리하여 문자 배열을 만들어주는 toCharArray()함수를 사용한다.
3. 코드
public class Main {
public int solution(String str, char c) {
int answer = 0;
str = str.toUpperCase();
c = Character.toUpperCase(c);
for (char x : str.toCharArray()) {
if (x == c) answer++;
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
char c = scanner.next().charAt(0);
System.out.println(T.solution(str, c));
}
}
4. Keword
- Scaaner
- next();
- charAt();
- String method
- toUpperCase();
- toLowerCase();
- toCharArray();
- Character method
- toUpperCase();
- toLowerCase();
'Algorithm' 카테고리의 다른 글
[자바 알고리즘 문제풀이] String 03. 문장 속 단어 (0) | 2022.03.06 |
---|---|
[자바 알고리즘 문제풀이] String 02. 대소문자 변환 (0) | 2022.02.17 |
순환 Recursion, 재귀함수 알고리즘 (0) | 2021.11.09 |
[백준_단계별로 풀어보기] 입출력과 사칙연산 2588번 곱셈 (JAVA) (0) | 2020.07.02 |
[백준_단계별로 풀어보기] 입출력과 사칙연산 10430번 나머지 (JAVA) (0) | 2020.07.02 |