▸JAVA/라이브러리(API)

java.lang.String (문자열) 주요 메소드 [1/4]

코데방 2019. 12. 10.
728x90

문자열 처리를 돕는 클래스입니다. 메모리 구조편에서 살펴봤듯이 String 타입은 변수가 아니라 클래스의 인스턴스입니다. 즉, 객체이자 참조변수가 되는 것이죠. 원시타입 변수가 아닌 모든 타입은 어떠한 클래스의 인스턴스입니다.

String a = "abc" 또는 String a = new String("abc") 형태로 String Class의 인스턴스를 하나 생성했다면 java.lang.String 클래스에 생성자를 문자열로 넣어주고 인스턴스를 생성했다는 의미입니다. 그래서 a.method()형태로 해당 클래스에 포함된 메소드를 사용할 수 있게 되는 것입니다.

또한 system.out.println(a) 형태로 출력할 수 있는 것은 String Class에서 toString() 메소드가 생성자로 들어온 문자열을 출력하도록 오버라이딩 되어 있기 때문입니다. 요점은 String 타입의 문자열 생성은 원시타입 변수가 아니고 java.lang.String 클래스의 인스턴스 생성과 동일하다는 것입니다.

 

 

 

 


 

[ equals() ]

  • Object.equals() 오버라이딩
  • 문자열이 같은지 비교 (값을 비교)
  • 대소문자 구분
package study.first;

public class Study {

	public static void main(String[] args) {

			String a = new String("abc");
			String b = new String("abc");
			System.out.println(a.equals(b));	// true
			String c = new String("Abc");
			System.out.println(a.equals(c));	// false
	}
}

 


 

[ equalsIgnoreCase() ]

  • equals()와 비슷하지만 대소문자 구분 없음
package study.first;

public class Study {

	public static void main(String[] args) {

			String a = new String("abc");
			String b = new String("abc");
			System.out.println(a.equalsIgnoreCase(b));	// true
			String c = new String("Abc");
			System.out.println(a.equalsIgnoreCase(c));	// true
	}
}

 


 

[ toString() ]​

  • Object.toString() 오버라이딩
  • 생략하고 인스턴스만 사용하면 컴파일러가 디폴트로 붙여서 컴파일해줌
package study.first;

public class Study {

	public static void main(String[] args) {

			String a = new String("abc");
			System.out.println(a);             // "abc"
			System.out.println(a.toString());  // "abc"
	}
}

 


 

[ length() ]

  • 문자열 길이 반환 (공백 포함)
package study.first;

public class Study {

	public static void main(String[] args) {

			String a = new String("abc");
			System.out.println(a.length());		// 3
	}
}

 


 

[ charAt() ]

  • 인덱스로 제공된 위치의 문자 반환
  • C언어와 마찬가지로 문자열은 내부적으로 char타입의 배열로 만들어짐
package study.first;

public class Study {

	public static void main(String[] args) {

			String a = new String("abc");
			System.out.println(a.charAt(0));		// a
			System.out.println(a.charAt(1));		// b
			System.out.println(a.charAt(2));		// c
	}
}

 


 

[ trim() ]

  • 문자열 양 끝의 공백 제거해서 새로 만들어진 문자열 인스턴스 주소 반환
  • 기존 문자열 값을 변경하는 것이 아님 (힙 영역에 새로운 문자열 인스턴스 생성)
package study.first;

public class Study {

	public static void main(String[] args) {

			String a = new String("  abc  ");
			System.out.println(a);				// "  abc  "
			
			String b = a.trim();				
			System.out.println(b);				// "abc"
	}
}

 


 

[ isEmpty() ]

  • 문자열의 길이가 0이면 true, 아니면 false
  • C언어 isspace() 함수와 동일
package study.first;

public class Study {

	public static void main(String[] args) {

			String a = new String("abc");
			String b = new String("");
			
			System.out.println(a.isEmpty());	// false
			System.out.println(b.isEmpty());	// true	
	}
}

 

728x90

댓글

💲 추천 글