[JAVA] charAt 메소드로 문자열에서 문자 하나 출력하기
문자는 문자 하나를 뜻하고,
문자열을 문자가 여러 개인 것을 뜻합니다.
문자열에서 문자 하나만 필요할 경우 어떻게 해야 할까요?
문자(char)와 문자열(String)의 차이
JAVA에서 문자(char)와 문자열(String)은 다른 데이터 유형입니다.
문자(char)는 단일문자를 나타내며, 작은따옴표('')로 표기합니다.
예) 'A', 'b', '3', '$' 등
문자열(String)은 여러 문자가 결합된 것을 나타내며, 큰따옴표("")로 묶어 표기합니다.
예) "Welcome to eo-y's blog", "Java Study" 등
char은 단일 문자를, String은 문자열을 처리합니다.
다만, 문자(char)와 문자열(String) 간에 형변환을 할 경우 변환방법이 필요합니다.
charAt() 메서드로 문자열에서 문자 반환하기
JAVA에서 문자열(String)에서 특정 인덱스 위치의 문자(char)를 반환하려면 charAt() 메서드를 사용합니다.
이때, charAt() 메서드는 인덱스 위치가 0부터 시작하며, 문자열의 길이를 벗어나지 않아야 합니다.
그렇지 않으면 StringIndexOutOfBoundsException 예외가 발생합니다. 알고 싶지 않았습니다.
예시 코드로 자세히 알아보겠습니다.
문자열 중 선택된 문자 하나 출력하기
String str = "Hello, eo-y's blog!";
char c = str.charAt(4);
System.out.println(c); // 'o' 출력
코드를 자세히 보시면,
String 문자열에 str이라는 변수를 주고, "Hello, eo-y's blog!"라는 값을 입력하였습니다.
char 문자에 c라는 변수를 주고, str문자열의 4번째 문자를 지정합니다.
이때, 인덱스는 0부터 시작하니까 0,1,2,3,'4번째'인 'o'가 선택됩니다.
System.out.println(); 출력을 통해 선택된 문자'o'가 출력됩니다.
그렇다면, 문자열 내의 모든 문자를 출력하려면 어떻게 해야 될까요?
문자열 내의 모든 문자 출력하기
String str = "Hello, eo-y's blog!";
for(int i=0; i<str.length(); i++) {
char ch = str.charAt(i);
System.out.println(ch);
}
코드를 설명하자면,
위 코드와 마찬가지로, str 문자열에 값을 입력하였습니다.
for문으로 i가 str의 길이가 될 때까지 반복합니다.
이때, i는 0부터 시작하기 때문에 문자열 str의 길이보다 작아야 하므로 '<='이 아닌 '<'입니다.
또한, 문자열의 길이를 아는 메서드는 length()입니다.
문자 c에 charAt 메서드를 호출하였습니다.
위 코드와 다른 점은 특정 숫자가 아닌 i값을 넣습니다.
i의 수가 증가할 때마다 호출할 수 있습니다.
선택된 문자를 출력합니다.
출력문자를 알아볼 수 있도록 print'ln'으로 작성하였습니다.
(문자출력 후 줄 띄우기 반복)
출력값은 다음과 같습니다.
H
e
l
l
o
,
e
o
-
y
'
s
b
l
o
g
!