본문 바로가기

Java

[ Java ] charAt()

charAt()

기본형 변수인 char는 단 한 글자만 저장할 수 있는 변수이다.

 

일반적으로 단어나 문장을 입력하는 경우가 많지만, 알고리즘 문제를 풀다 보면 요구하는 명령어가 한 단어로 이루어져 있을 때가 있다. 이때 charAt()을 사용할 수 있다.


사용방법

 

Scanner나 BufferedReader로 입력을 받을 때는 String으로 리턴 값이 고정되기 때문에 charAt()을 사용하여 저장된 문자열 중에서 한 글자만 선택해 char타입으로 변환해 준다.

 

BufferedReader가 무엇인지 잘 모르겠다면 아래 링크를 참조하면 된다.

(https://kkosang.tistory.com/3)

 

[ Java ] BufferedReader와 BufferedWriter

BufferedReader와 BufferedWriter를 보기 전에 먼저 Scanner를 알아보자. Scanner 자바를 처음 배울 때 대부분 Scanner 클래스를 이용해서 입력을 받았을 것이다. Scanner 클래스의 특징에는 여러 가지가 있지만,

kkosang.tistory.com

 

charAt()은 문자열의 index의 값을 받아 문자열에서 해당 index를 char타입으로 반환한다.

 

예시를 들어 좀 더 자세하게 설명하겠다.

 

ex)

String str = new String();

str = "hello java";

위와 같은 예시가 있다고 가정해 보자.

 

String 타입의 참조변수 str에 "hello java"라는 문자열을 저장했다.

 

문자열중 하나의 단어값을 char타입으로 반환해 사용하고 싶을 때, 아래와 같이 참조변수에. 을 찍고 charAt(index);를 적어주면 된다.

 

str.charAt(0);

char ch = '';
ch = str.charAt(0); // 여기서 str은 "hello java"
System.out.println(ch); // index가 0번이기 때문에 h가 출력이 된다.
ch = str.charAt(6);
Systemo.out.println(ch); // index 번호가 6번 => j가 출력이 된다.

 

마지막으로 예시를 하나 더 들어보겠다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 버퍼를 이용한 입력
String cmd = br.readLine(); 
// cmd에 A x 가 입력이 됐다고 가정해보자.

char ch = cmd.charAt(2);

위의 코드에서 ch의 값은 무엇이 되겠는가?

정답은 ch의 값은 char타입으로 x가 된다.

 

이유는 해당 문자열 "A x"를 입력받았기 때문에,

charAt(0)의 값은 A, charAt(1)의 값은 " ", charAt(2)의 값은 x가 된다.

 

여기서 주의해야 할 점은 공백까지 생각해서 index를 설정해줘야 한다.

'Java' 카테고리의 다른 글

[ Java ] 타입변환  (0) 2023.04.28
[ Java ] StringTokenizer 클래스  (0) 2023.04.15
[ Java ] 논리형타입과 논리연산자  (0) 2023.04.10
[ Java ] 기본형 타입  (0) 2023.04.10
[ Java ] StringBuffer와 StringBuilder  (0) 2023.04.09