자바 String은 객체

Chris·2020년 1월 6일
0

자바 String은 객체

  • 자바에서 String(문자열)은 " "로 감싸면 된다.
  • String은 바로 여러 메서드를 사용할 수 있어 객체로 취급된다.

String 생성

1. new로 선언

// Heap 영역에 객체가 생성
// 서로 다른 번지를 가짐
// str1 != str2
String str1 = new String("JAVA");
String str2 = new String("JAVA");

2. Literal Pool로 선언

// 리터럴 풀로 객체가 생성
// 서로 같은 번지를 가짐
// str3 == str4
String str3 = "PYTHON";
String str4 = "PYTHON"; 

예제

// 1-new instance
String str1 = new String("JAVA");
String str2 = new String("JAVA");

Boolean isJava;
// 번지 확인
isJava = (str1 == str2) ? true : false;
System.out.println(isJava);		// false

// 문자열 확인
isJava = (str1.equals(str2)) ? true : false;
System.out.println(isJava);		// true

// 2-literal pool
String str3 = "PYTHON";
String str4 = "PYTHON";

// 번지수 확인
isJava = (str3 == str4) ? true : false;
System.out.println(isJava);		// true

// 문자 확인
isJava = (str3.equals(str4)) ? true : false;
System.out.println(isJava);		// true

String 메서드

  • equals(a): a값과 같은 문자열 동일값 비교
  • indexOf(): 특정문자가 시작되는 인덱스 반환
  • replaceAll(a, b): a문자열을 b문자열로 치환
  • substring(a, b): 문자열 자르기, a는 시작위치, b는 끝위치
String a = "Python";
String b = "Java";
System.out.println(a.equals(b));				// false
System.out.println(a.indexOf("t"));				// 2
System.out.println(a.replaceAll("h", "x"));		// Pytxon
System.out.println(a.substring(3, 5));			// ho

StringBuffer

문자열을 추가하거나 변경할 때는 String보다 StringBuffer가 빠르다.

StringBuffer sb = new StringBuffer();
sb.append("hello");
sb.append(" ");
sb.append("jump to java");
System.out.println(sb.toString());		// hello jump to java
profile
올드보이 코더

0개의 댓글