워누입니다!

 

오늘은 Java 공부를 하다가 많이 헷갈리는 개념이 있길래 개념도 정리할 겸, 자주 쓰이는 것도 연습해볼 겸 블로그를 포스팅해보겠습니다. 

 

보통 모든 프로그램에서 문자열(문자들의 집합)은 많이 쓰이는데요, 자바에서는 문자열을 위한 String이라는 클래스를 별도로 제공합니다.

 

보통 String을 학생 때에는 변수 타입 중 하나라고만 생각하겠지만 자바에서는 이렇게 접근해버리면 개발하다가 100%의 확률로 오류가 발생합니다. (String 인스턴스는 한 번 생성되면 그 값을 읽기만 할 수 있고, 변경할 수는 없다고 합니다!)

어떤 말이냐면, 자바에서 덧셈(+) 연산자를 이용하여 문자열 결합을 수행하면, 기존 문자열의 내용이 변경되는 것이 아니라 내용이 합쳐진 새로운 String 인스턴스가 생성되는 것입니다.

 

String 클래스는 java.lang 패키지에서 제공하며, 문자열과 관련된 작업을 할 때 유용하게 사용할 수 있는 다양한 메소드가 포함되어 있습니다. 

자바에서 필요한 메소드를 찾는다면 하기 링크를 통해서 더 편하게 찾을 수 있습니다. 

(https://docs.oracle.com/javase/8/docs/api/)

 

어찌 되었든, Java를 사용하는 개발자라면 String 클래스를 이해하고, 문자열을 생성하는 방법부터 추출, 비교, 찾기, 분리, 변환 등을 제공하는 메소드를 익혀두면 차후 개발 시에 매우 유용하게 쓸 수 있습니다. 

 

개념은 이정도만 정리하도록 하겠습니다.(역시 개념은 지루해..)

 

오늘은 String을 통해 제공되는 메소드 중 trim(), substring(), charAt()을 써보고자 합니다. 

앞으로도 종종 String 메소드를 소개해드릴 일이 많을 것 같거든요 ㅎㅎ 

String 클래스의 인스턴스 변수 선언 후 .만 찍었는데 이렇게 많은 메소드들이...ㄷㄷㄷㄷㄷㄷ

많기는 더럽게 많죠?? 저 중에서 제대로 쓰는건 없겠지라고 생각했는데.. 

(아마 Java 복습하기 글들 둘러보시면 은근 String 메소드들을 썼더라구요..모르면서 쓰다니..)

 

오늘은 제가 공부 겸, 토이 프로젝트에서 써먹는 코드 중 핵심만 빼서 가져와보았습니다. 

 


public class strMethodPrac {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String ssn = "9503071234567"; 	// 주민번호
		String name = "     워누";
		String newName = name.trim();
		
		System.out.println("이름 :" + name);	
		System.out.println("trim처리한 이름 :" + newName);
		
		String birth = ssn.substring(0, 6);
		char gender = ssn.charAt(6);
		
		switch(gender) {
			case '1':
			case '3':
				System.out.println(newName + "님은 남자입니다.");
				break;
			case '2':
			case '4':
				System.out.println(newName + "님은 여자입니다.");
				break;
		}
	}
		
}

 

 

 

 

 

그럼 소스코드를 실행한 결과부터 우선 보도록 하겠습니다. 

.

strMethodPrac 클래스 실행 결과

.

 

간단하지만 이런 처리결과를 가지고 회사든, 프로젝트든 많이 쓰이고 있습니다! 

그럼 이제 메소드에 대해서 가볍게 설명을 드릴게요! 

 

1. trim()

 

맨 먼저 쓰인 trim() 메소드는 앞뒤 공백을 제거해주는 역할을 합니다. 
그래서 name에 있던 "     워누"라는 값은 newName.trim()으로 처리하여 앞의 공백이 제거되어 "워누"라는 값으로 반환됩니다. 

 

2. substring()

 

substring() 메소드는 문자열을 잘라내주는 역할을 하며, 아래와 같은 형태로 쓰입니다.


substring(포함할 인덱스 번호, [제외할 인덱스 번호])

만약, [제외할 인덱스 번호]의 값을 채워주지 않는다면 끝까지 다 가져올 것입니다. 
예시에 나와있는 소스코드를 보면 저는 0번째를 포함해서 6번째를 제거했으니 아래와 같이 결과를 반환합니다. 

 9  5  0  3  0  7   1  2  3  4  5  6  7   -> 문자열(ssn)
 0/ 1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/10/11/12  -> Index 번호

ssn.substring(0,6) -> 950307

 

제 개인 프로젝트에서는 이렇게 주민번호 앞 6자리를 가져와 생년월일을 검증하도록 하고 있습니다!

 

3. charAt()


charAt() 메소드는 괄호 안에 매개값으로 주어진 인덱스의 문자를 가져오며 아래와 같은 형태로 사용됩니다. 


charAt(인덱스 번호)

예시에 나와있는 소스코드를 보면 저는 6번째를 가져왔으니 (주민번호 뒷 7자리중 첫자리)
성별을 구분하는 값으로 사용하도록 아래와 같이 결과를 반환할 수 잇습니다. 

 9  5  0  3  0  7   1  2  3  4  5  6  7   -> 문자열(ssn)
 0/ 1/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/10/11/12  -> Index 번호

charAt(6) -> 1

 

쉽게 설명을 드렸다고 생각하지만 어렵게 느껴지셨다면 직접 소스코드를 작성해보시면서 계속 연습해보셔야 합니다!

그래야 익숙해지거든요ㅎㅎ (아는 애가 이러고 있냐..)

 

String 클래스에서 제공하는 메소드가 많아서 아마 "문자열 가지고 놀기"라는 제목으로 가끔씩 포스팅이 올라올 것입니다. 중, 고급 개발자분들은 잘 아셔서 지루하시겠지만 저와 같이 초급 개발자거나, 이제 막 입문하신다면 꼭 도움이 되셨길 바랍니다 ㅎㅎ 오늘 포스팅은 여기서 마치도록 하겠습니다!

+ Recent posts