본문 바로가기

BackEnd/Java

[java] 이것이 자바다 ch05 문자열 타입

728x90
반응형

1. 문자열(String) 타입

   ▷ String 타입

      ▶ 문자열은 String 객체로 생성합니다.

 

   ▷ 문자열 비교 : 문자열 리터럴이 동일하다면 String 객체를 공유합니다.

      ▶ new 연산자(객체 생성 연산자)로 직접 String  객체를 생성/대입 가능합니다.

 

public class EqualsExample {

	public static void main(String[] args) {
		
		String strVar1 = "홍길동";
		String strVar2 = "홍길동";
		
		if(strVar1 == strVar2) {  // == 번지 값을 비교
			System.out.println("strVar1과 strVar2는 참조가 같음");
		} else {
			System.out.println("strVar1과 strVar2는 참조가 다름");			
		}
		
		if(strVar1.equals(strVar2)) {   // equals 데이터 값을 비교
			System.out.println("strVar1과 strVar2는 문자열이 같음");
		}
		
		String strVar3 = new String("홍길동");
		String strVar4 = new String("홍길동");
		// 객체로 생성, 새로운 주소 값과 데이터가 따로 저장됩니다.
		// 리터럴 값("홍길동")이 같지만 주소가 각각 따로 저장됩니다.
		
		if(strVar3 == strVar4) {
			System.out.println("strVar3과 strVar4는 참조가 같음");
		} else { 
			System.out.println("strVar3과 strVar4는 참조가 다름");			
		}
		
		if(strVar3.equals(strVar4)) {
			System.out.println("strVar3과 strVar4는 문자열이 같음");
		}
	}
}

 

 

   ▷ 문자열 추출 : charAt()

      ▶ 문자열에서 매개값으로 주어진 인덱스의 문자를 리턴해 특정 위치의 문자를 얻을 수 있습니다.

      ▶ 7글자면 왼쪽에서부터 0 ~ 6까지 지정해야합니다.(charAt(6) = 7번째 글자)

 

   ▷ 문자열 길이 : length()

      ▶ 문자열에서 문자의 개수를 얻고 싶다면 length() 메소드를 사용합니다.

 

public class CharAtExample {

	public static void main(String[] args) {
//		주민등록번호의 값을 이용하여 성별 확인
//		생년월일성별 222(성별) 1 2 3 4
		String ssn = "9506241230123";
		char sex = ssn.charAt(6);
		switch(sex) {
			case '1' :
			case '3' :
				System.out.println("남자입니다.");
				break;
			case '2' :
			case '4' :
				System.out.println("여자입니다.");
		}
		
		int length = ssn.length();
		if(length == 13) {
			System.out.println("주민등록번호 자릿수가 맞습니다.");
		} else {
			System.out.println("주민등록번호 자릿수가 틀립니다.");			
		}
	}
}

// 출력 : 
// 남자입니다.
// 주민등록번호 자릿수가 맞습니다.

 

 

   ▷ 문자열 대체 : replace()

       ▶ 기존 문자열은 그대로 두고, 대체한 새로운 문자열을 리턴합니다.

 

public class ReplaceExample {

	public static void main(String[] args) {
		String oldStr = "자바 문자열은 불변입니다. 자바 문자열은 String입니다.";
		String newStr = oldStr.replace("자바", "JAVA");
		
		System.out.println(oldStr);
		System.out.println(newStr);
	}
}

// 출력 : 
// 자바 문자열은 불변입니다. 자바 문자열은 String입니다.
// JAVA 문자열은 불변입니다. JAVA 문자열은 String입니다.

 

 

   ▷ 문자열 잘라내기 : substring()

      ▶ 문자열에서 특정위치의 문자열을 잘라내서 가져오고 싶을 때 사용합니다.

 

public class SubStringExample {

	public static void main(String[] args) {
		String ssn = "880815-1234567";
		
		String firstNum = ssn.substring(0, 6); // endindex 앞에서 잘라냅니다.
		String endNum = ssn.substring(7); // 시작위치부터 끝까지 출력합니다.
		
		System.out.println(firstNum);
		System.out.println(endNum);
	}
}

// 출력 : 
// 880815
// 1234567

 

 

   ▷ 문자열 찾기 : indexOf()

      ▶ 문자열에서 특정 문자열의 위치를 찾고자 할 때에는 indexOf() 메소드를 사용합니다.

      ▶ 주어진 문자열이 없는 경우 -1을 리턴합니다.

      ▶ 주어진 문자열에 단순히 포함여부만 조사하고 싶다면 contains() 메소드를 사용하여 true; false; 리턴 값만 확인합니다.

 

public class indexOfExample {

	public static void main(String[] args) {

		String subject = "자바 프로그래밍";
		
		int location = subject.indexOf("프로그래밍");
		System.out.println(location);
		
		String substring = subject.substring(location);
		System.out.println(substring);
		
		location = subject.indexOf("자바");
		if(location != -1) {
			System.out.println("자바와 관련된 책이군요.");
		} else {
			System.out.println("자바와 관련 없는 책이군요.");			
		}
		
		boolean result = subject.contains("자바");
		if(result) {
			System.out.println("자바와 관련된 책이군요.");
		} else {
			System.out.println("자바와 관련 없는 책이군요.");			
		}
	}
}

 

 

   ▷ 문자열 분리 : split()

      ▶ 구분자가 있는 여러 개의 문자열을 분리할 때 사용합니다.

 

public class SplitExample {

	public static void main(String[] args) {

		String board = "1,자바 학습,참조 타입 String을 학습합니다.,홍길동";
		
		// 문자열 분리
		String[] tokens = board.split(",");
		
		System.out.println("번호 : " + tokens[0]);
		System.out.println("제목 : " + tokens[1]);
		System.out.println("내용 : " + tokens[2]);
		System.out.println("성명 : " + tokens[3]);
		System.out.println();
		
		for(int i=0; i<tokens.length; i++) {
			System.out.println(tokens[i]);
		}
	}
}

// 출력 : 
// 번호 : 1
// 제목 : 자바 학습
// 내용 : 참조 타입 String을 학습합니다.
// 성명 : 홍길동
//
// 1
// 자바 학습
// 참조 타입 String을 학습합니다.
// 홍길동

 

문자열 타입의 함수를 이용해서 바로 예제로 적용해보았습니다!

 

확실히 어떻게 사용되는지는 직접 코드로 작성해보는 것이 좋네요!!

 

많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

 

728x90
반응형