22.03.25 String클래스

//String클래스는 두 가지 특징을 가지고 있다.
//1)객체 생성법이 두 가지(암시적, 명시적)
//2)한 번 생성된 문자열의 내용은 변하지 않는다.(불변의 특징)
//객체 -> 클래스를 가지고 만드는 변수
//String만 객체형 변수

	String s1 = "abc";//암시적 객체생성
	String s2 = "abc";
	
	String s3 = new String("abc");//new가 있으면 명시적 객체생성
	String s4 = new String("abc");
	
	// == 연산자는 기본자료형을 비교할때는 값을 비교한다.
	// 그러나 객체끼리 비교할때는 주소를 비교하는 연산자로 기능이 바뀐다.
	if(s1 == s3) {
		System.out.println("주소가 같습니다.");
	}
	else {
		System.out.println("주소가 다릅니다.");
	}
	
	Scanner sc = new Scanner(System.in);
	System.out.println("문자열 : ");
	String s5 = sc.next();
	
	if(s5.equals(s1)) {
		System.out.println("값이 같습니다");
	}
	else {
		System.out.println("값이 다릅니다.");
	}
	
	System.out.println("------------------------------");
	
	String greet = "안녕";
	greet += "하세요";
	System.out.println(greet);

//method(기능, 함수) : 어떤 작업을 수행하기 위한 명령문들의 집합
//반복적으로 사용되는 코드를 미리 정의해두고 필요할 때 마다 가져다가 사용할 수 있다.

	String str = "Hong Gil Dong";
	int idx = str.length();//배열 length에는 ( )가 없고, 
                             메서드 length에는 ( )가 있다.
	System.out.println("str의 길이 : " + idx); // 13
	
	idx = str.indexOf('o');
	System.out.println("첫 문자 o의 위치 : " + idx); // 1
	
	idx = str.lastIndexOf('o');
	System.out.println("마지막 문자 o의 위치 : " + idx); // 10
	
	char res = str.charAt(5);
	System.out.println("5번째 위치의 문자 : " + res); // G
	
	String exam = "apple"; 
	if(exam.contentEquals("apple")) {// equals.()값을 비교
		System.out.println("exam은 apple입니다.");
	}
	
	//equalsIgnoreCase -> 대소문자를 무시하고 알파벳이 같으면 참.
	if(exam.equalsIgnoreCase("Apple")) {
		System.out.println("같습니다.");
	}
	
	String id = " abc ";
	//trim() : 문자열 앞뒤의 의미없는 모든 공백을 제거
	if("abc".equals(id.trim())) {
		System.out.println("로그인 성공");
	}
	
	//정수형태의 문자열을 실제 정수로 바꿔주는 메서드 -> Integer.parseInt()
	String number = "10";
	int num = Integer.parseInt(number);
	System.out.println(num + 5);
	
	//기본 자료형의 wrapper클래스
	//int -> Integer
	//char -> Character
	//boolean -> Boolean
	//byte -> Byte
	//short -> Short
	//long -> Long
	//float -> Float
	//double -> Double

좋은 웹페이지 즐겨찾기