String 클래스는 charAt() 함수를 제공하는데, 문자열에서 특정 Index의 문자를 리턴합니다. 예제와 함께 자세히 알아보겠습니다.
1. String.charAt()
String.charAt(index)는 문자열에서 index에 해당하는 문자를 char 타입으로 리턴합니다.
아래와 같이 특정 위치의 문자가 무엇인지 가져와서 출력해볼 수 있습니다.
public class Example {
public static void main(String[] args) {
String str = "Hello, World";
char c = str.charAt(0);
System.out.println(c);
c = str.charAt(2);
System.out.println(c);
c = str.charAt(4);
System.out.println(c);
}
}Output:
H
l
o2. 아스키(ASCII) 코드로 출력
char 타입의 문자를 int로 형변환하면, 그 값이 바로 아스키 코드가 됩니다.
public class Example {
public static void main(String[] args) {
String str = "Hello, World";
char c = str.charAt(0);
System.out.println((int) c);
c = str.charAt(2);
System.out.println((int) c);
c = str.charAt(4);
System.out.println((int) c);
}
}Output:
72
108
111아스키 코드는 ibm.com - 33에서부터 126까지의 ASCII 문자에서 제공하는 테이블을 참조하시면 됩니다.
3. 첫번째 문자, 마지막 문자
charAt()을 이용하여 문자열의 첫번째, 마지막 문자를 가져올 수 있습니다.
아래와 같이 첫번째 문자는 Index가 0이고 마지막 문자는 length() - 1인 것을 이용하면 됩니다.
public class Example {
public static void main(String[] args) {
String str = "Hello, World";
System.out.println("first: " + str.charAt(0));
System.out.println("last: " + str.charAt(str.length() - 1));
}
}Output:
first: H
last: d4. StringIndexOutOfBoundsException 에러
charAt()에 문자열의 길이보다 더 큰 Index를 인자로 전달하면 아래와 같이 StringIndexOutOfBoundsException 에러가 발생합니다.
public class Example {
public static void main(String[] args) {
String str = "Hello, World";
char c = str.charAt(30);
System.out.println((int) c);
}
}Output:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 30
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
at java.base/java.lang.String.charAt(String.java:1512)
at Example.main(Example.java:6)try catch로 예외를 처리할 수 있지만, 기본적으로 아래와 같이 문자열 길이와 비교하여 유효한 Index 인지 확인 후 사용하시는 것이 좋습니다.
public class Example {
public static void main(String[] args) {
String str = "Hello, World";
int index = 30;
if (index < str.length()) {
char c = str.charAt(index);
System.out.println((int) c);
} else {
System.out.println("Invalid index: " + index);
}
}
}Output:
Invalid index: 30Loading script...
Related Posts
- Java - Unsupported class file major version 61 에러
- Java - String.matches()로 문자열 패턴 확인 및 다양한 예제 소개
- Java - 문자열 공백제거 (trim, replace)
- Java - replace()와 replaceAll()의 차이점
- Java - ArrayList 초기화, 4가지 방법
- Java - 배열 정렬(Sorting) (오름차순, 내림차순)
- Java - 문자열(String)을 비교하는 방법 (==, equals, compare)
- Java - StringBuilder 사용 방법, 예제
- Java - 로그 출력, 파일 저장 방법 (Logger 라이브러리)
- Java IllegalArgumentException 의미, 발생 이유
- Java - NullPointerException 원인, 해결 방법
- Seleninum의 ConnectionFailedException: Unable to establish websocket connection 해결
- Java - compareTo(), 객체 크기 비교
- Java - BufferedReader로 파일 읽기
- Java - BufferedWriter로 파일 쓰기
- Java - BigInteger 범위, 비교, 연산, 형변환
- Java charAt() 함수 알아보기
- Java contains()로 문자(대소문자 X) 포함 확인
- Java - Set(HashSet)를 배열로 변환
- Java - 문자열 첫번째 문자, 마지막 문자 확인
- Java - 문자열 한글자씩 자르기
- Java - 문자열 단어 개수 가져오기
- Java - 1초마다 반복 실행
- Java - 배열을 Set(HashSet)로 변환
- Java - 여러 Set(HashSet) 합치기
- Java - 명령행 인자 입력 받기
- Java - 리스트 역순으로 순회, 3가지 방법
- Java - 특정 조건으로 리스트 필터링, 3가지 방법
- Java - HashMap 모든 요소들의 합계, 평균 계산
- Java - 특정 조건으로 HashMap 필터링
- Java - 싱글톤(Singleton) 패턴 구현
- Java - 숫자 왼쪽에 0으로 채우기
- Java - String 배열 초기화 방법
- Java - 정렬된 순서로 Map(HashMap) 순회
- Java - HashMap에서 key, value 가져오기