Java

Java String charAt()메소드 예제

Java String 클래스는 charAt(), compare(), concat(), equals(), split(), length(), replace(), compareTo(), intern(), substring()과 같은 문자열에서 작업을 수행하는 많은 메소드를 제공한다.

charAt()메소드는 문자열에서 특정 위치의 문자가 무엇인지 확인할 수 있다. 

package edu.sample;

public class SampleCharAt {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "Hello. Java World. Stay Strong"; 
		char ch1 = str.charAt(0);			 
		char ch2 = str.charAt(15); 
		char ch3 = str.charAt(20); 
		char ch4 = str.charAt(25);
			
		System.out.println("첫번째 문자 : "+ch1); 
		System.out.println("열 다섯번째 문자 : "+ch2); 
		System.out.println("스무번째 문자 : "+ch3); 
		System.out.println("스물다섯 번째 문자 : "+ch4); 
	}

}

 

■출력결과 

첫번째 문자 : H 
열 다섯번째 문자 : l 
스무번째 문자 : t 
스물다섯 번째 문자 : t

인덱스 값으로 마이너스값을 대입하거나,  문자열 길이보다 큰 인덱스 값을 대입하면 java.lang.StringIndexOutOfBoundsException 오류가 발생한다.

package edu.sample;

public class SampleCharAt {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "Hello. Java World. Stay Strong"; 	
		
		char ch5 = str.charAt(-1);		
		System.out.println("결과 문자 : "+ch5);   
		
		char ch6 = str.charAt(31);		
		System.out.println("결과 문자 : "+ch6);
	}

}

 

■출력결과

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.String.charAt(Unknown Source)
	at edu.sample.SampleCharAt.main(SampleCharAt.java:19)


가장 마지막 문자열을 확인하고 싶다면 length()메소드를 사용하면 된다. 주의할 점은 자바는 모든 인덱스가 1이 아닌 0부터 시작한다. 그럼으로 문자열의 길이를 length()메소드를 사용하여 획득 후 마이너스 1 처리를 해주어야 한다. 그렇지 않으면 위에서와 같은 동일한 오류가 발생한다.

package edu.sample;

public class SampleCharAt {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "Hello. Java World. Stay Strong"; 

		char ch7 = str.charAt(str.length()-1);		
		System.out.println("가장 마지막 문자 : "+ch7);
	}

}

 

■출력결과

가장 마지막 문자 : g

 

이번에는 for문을 사용하여 모든 문자를 출력해보자

package edu.sample;

public class SampleCharAt {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "Hello. Java World. Stay Strong"; 
		
		for(int i=0; i<str.length(); i++) {
			System.out.println(str.charAt(i));
		}
	}

}

 

■출력결과

H
e
l
l
o
.
 
J
a
v
a
 
W
o
r
l
d
.
 
S
t
a
y
 
S
t
r
o
n
g

마지막으로 문자열에서 특정 문자가 몇 개 있는지 확인하는 코드를 작성해보자. 샘플코드 문자열에서 S가 몇 번 있는지 체크해본다. 주의할 점은 비교시 쌍따움표(“”)를 사용하지 않고, 작은따옴표(”)사용하여 비교할 수 있다.

package edu.sample;

public class SampleCharAt {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "Hello. Java World. Stay Strong"; 
 
		int counter = 0;
		for(int i=0; i<str.length(); i++) {
			if(str.charAt(i)== 'S') {
				counter++;
			}
		}
		
		System.out.println("문자열에 포함된 S의 개수는 "+ counter + "개 입니다.");
	}

}

 

■출력결과

문자열에 포함된 S의 개수는 2개 입니다.

[참고]
String charAt() javadoc

Leave a Reply

error: Content is protected !!