일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 자바
- 백준
- 데이터분석
- list
- 코딩
- numpy
- 모각코
- KT AIVLE
- pandas
- Python
- KT
- AI학습
- 정처기
- 인공지능
- AIVLE
- 데이터
- Java
- 데이터과학
- git
- dictionary
- ai 전문가 과정
- 알고리즘
- 파이썬
- AI 윤리
- github
- 코딩테스트
- LG Aimers
- Ai
- 클래스
- 정처기 실기
Archives
- Today
- Total
무향향수
[Java] charAt()과 indexOf()의 차이 본문
목차🦖
- charAt(숫자)
- indexOf(문자)
- charAt()과 indexOf()를 모두 사용해서 푼 코딩테스트 문제
더보기
학습 이유
코딩테스트 문제를 풀다가 해당 문자열이 존재하는지 확인해야하는 문제가 나왔는데 이 상황에서 indexOf()를 사용해야 하는지, charAt()을 사용해야하는지 알 수 없었다. 이러한 이유로 블로그에 각각의 기능과 활용 방법에 대해 정리하고 기억하기 위하여 학습하게 되었다.
🦖 1. charAt(숫자)
charAt()은 변수명.charAt(숫자) 형식으로 사용한다.
사용자가 입력한 숫자가 2인경우, 해당 문자열의 2번째에 해당하는 문자를 출력해준다.
String S = "ROUND FACE";
System.out.println(S.charAt(2));
// 문자열 S의 2번째에 해당하는 'U'가 출력된다.
🦖 2. indexOf(문자)
indexOf()는 변수명.indexOf(문자열) 형식으로 사용한다.
사용자가 입력한 문자열이 해당 변수에 존재하는지, 존재하지 않는지 확인해준다.
만약 찾으려는 문자가 해당 문자열에 존재하지 않는 경우 '-1'을 반환하고,
존재하는 경우 문자열내에서 해당 문자의 위치를 반환해준다.
String S = "ROUND FACE";
System.out.println(S.indexOf("A")); // 문자열 S의 7번째에 위치하기 때문에 7이 반환된다.
System.out.println(S.indexOf("H")); // 문자열 S에 존재하지 않기 때문에 -1이 반환된다.
🦖 3. charAt()과 indexOf()를 모두 사용해서 푼 코딩테스트 문제
문제

코드
package CodingTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class AntEscape3 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.valueOf(br.readLine()); // 테스트케이스 수
for (int i = 0; i < T; i++) {
String nm = br.readLine();
StringTokenizer st = new StringTokenizer(nm);
int N = Integer.valueOf(st.nextToken()); // 1차원 세상 길이
int M = Integer.valueOf(st.nextToken()); // 부술 수 있는 벽의 수
String S = br.readLine(); // 1차원 세상
String x = br.readLine(); // 빈 줄
int wall = 0; // 세상속 벽의 수
for (int j = Math.min(S.indexOf("G"), S.indexOf("@")); j < Math.max(S.indexOf("G"), S.indexOf("@")); j++) { // G를 얻을 수 있는지 확인
if (S.charAt(j) == '#')
wall++;
}
if (wall > M) { // G를 구할 수 없는 경우
wall = 0;
for (int j = Math.min(S.indexOf("@"), S.indexOf("O")); j < Math.max(S.indexOf("@"), S.indexOf("O")); j++) { // 탈출구까지 벽의 수 확인
if (S.charAt(j) == '#')
wall++;
}
System.out.println(wall > M ? "NO" : "YES");
} else
System.out.println("YES");
}
}
}
for (int j = Math.min(S.indexOf("G"), S.indexOf("@")); j < Math.max(S.indexOf("G"), S.indexOf("@")); j++) { // G를 얻을 수 있는지 확인
if (S.charAt(j) == '#')
wall++;
}
// 문자열 S에 'G'또는 '@'가 있는 위치를 확인하고 싶을 때 => S.indexOf("G") 사용
// 문자열 S의 j번째에 '#'이 있는지 확인하고 싶을 때 => S.charAt(j) 사용
if (wall > M) { // G를 구할 수 없는 경우
wall = 0;
for (int j = Math.min(S.indexOf("@"), S.indexOf("O")); j < Math.max(S.indexOf("@"), S.indexOf("O")); j++) { // 탈출구까지 벽의 수 확인
if (S.charAt(j) == '#')
wall++;
}
System.out.println(wall > M ? "NO" : "YES");
} else
System.out.println("YES");
⭐정리⭐
매개변수 | 반환값 | |
charAt() | 숫자 | 문자열 |
indexOf() | 문자 | 문자의 위치 |
charAt()과 indexOf() 모두 문자열을 찾는데 사용한다.
charAt()은 매개변수로 숫자를 입력하여 해당 위치에 존재하는 문자열을 반환해주고
indexOf()는 매개변수로 문자를 입력하여 문자열에 해당 문자가 존재하는 위치를 반환해준다.
'SW아카데미 (23) > JAVA' 카테고리의 다른 글
[Java] Collection 정리 (0) | 2023.08.01 |
---|---|
[Java] Integer.valueOf()와 Integer.parseInt()의 차이 (0) | 2023.08.01 |
[Java] HashMap, TreeMap (0) | 2023.07.31 |
[Java] toCharArray(), Arrays.sort() (0) | 2023.07.26 |
[Java 입출력] BufferedReader, BufferedWriter, StringTokenizer (1) | 2023.07.25 |