Java. String 메서드 - charAt()

kimkim·2024년 10월 25일

Java. 공부내용정리

목록 보기
35/38

charAt();

: Java에서 문자열의 특정 인덱스에 있는 문자를 반환하는 메서드이다.
: String이 배열은 아니지만 배열처럼 각자의 요소에 인덱스를 부여해서 인덱스 값을 넣으면 그 인덱스 값에 해당하는 문자를 담을 수 있다.

charAt(i);
: 문자의 i번째 의 값을 반환한다.

담을 수 있는 자료형

	String str = "lolo 1lolo";

	// charAt()은 char 타입을 반환
	char c1 = str.charAt(0);  // 가능, c1은 'l'을 가짐
	int i1 = str.charAt(0);   // 가능, c1은 'l'의 ASCII 값을 가짐
	String a1 = str.charAt(0); // 불가능, char을 String에 넣을 수 없음
    
    System.out.println(c1); // l
	System.out.println(i1); // 108
  • String 불가
  • char 가능
  • int 가능

String은 불가능하고 char은 가능한 이유

charAt();
> charAt(); 매서드는 반환값이 char타입이기 때문이다.
> 그래서 String으로 직접 할당하는 것은 타입 불일치로 불가능하다.

int 할당이 가능한 이유

> char의 문자 하나를 유니코드(또는 ASCII) 값을 받아서 저장한다.
> 그래서 문자 자체를 저장하는 것이 아니라 문자를 표현하는 숫자로 변환하여 int에 저장된다.

char -> String, int -> char 형변환 할때는 강제형변환을 해야한다

  • char -> String : String s = (String) c1;
  • int -> char : char c = (char) i1;

에러

StringIndexOutOfBoundsException

  • 발생 조건
    • 문자열의 길이보다 큰 인덱스를 쓸 때
    • 음수 인덱스를 쓸 때

결론

charAt(); 는 문자열을 인덱스화 시켜 일치하는 인덱스 문자를 반환하는 메서드이다.
charAt(int index); > 인덱스에 맞는 문자를 반환한다.
char, int 자료형으로 가능하고 String은 불가 (하려면 강제형변환 해야함)
에러가 날 수 있으니 에러 조건을 주의할 것

0개의 댓글