Java 개념 정리7 (String 클래스와 메서드)

김찬미·2023년 3월 20일

Java

목록 보기
12/20

String 클래스

  • 자바로 만들어진 모든 프로그램은 클래스로 이루어져있다.
  • 우리가 문자열을 저장하기 위해 사용했던 String도 자바에 내장되어 있는 클래스이다.

String 클래스의 특징

  • 객체 생성 방법이 두 가지(암시적, 명시적)
  • 한 번 생성된 문자열의 내용은 변하지 않는다.(불변의 특징)

암시적 객체 생성

이미 앞에 같은 문자열로 생성된 암시적 객체가 있다면 앞서 생성된 객체의 주소를 재사용한다.

String s1 = "abc";
String s2 = "abc";

if (s1 == s2) {
	System.out.println("s1과 s2의 주소가 같습니다.");
} else {
	System.out.println("s1과 s2의 주소가 다릅니다.");
}
        
// 결과 : s1과 s2의 주소가 같습니다.
  • 암시적 객체 생성을 할 수 있는 클래스는 String밖에 없다.
  • 다른 모든 클래스들은 new를 사용하여 명시적 객체 생성을 해야 한다.
String greet = "안녕";
greet += "하세요"; // greet = greet + "하세요";
System.out.println(greet);
  • "하세요"가 뒤에 붙는 순간 "안녕" 뒤에 붙는게 아니라 "안녕하세요"라는 메모리를 새로 할당받는 것.
  • 그리고 나서 남은 "안녕"이 메모리를 낭비할 수도 있지만 JVM의 GC가 힙 영역을 돌면서 쓰레기 데이터를 처리한다.

method(메서드)

어떠한 기능을 가지고 있는 명령문의 집합

  • 메서드를 사용하는 가장 큰 이유는 반복적으로 사용되는 코드를 줄이기 위해서이다.
  • 자주 사용하는 내용의 코드를 메서드로 작성해 두고 필요할 때마다 호출만 하면 된다.

메서드 호출하는 법

객체명.함수명()

String str = "Hong Gil Dong"; // 암시적 객체 생성
System.out.println("문자열 str의 길이 : " + str.length()); // 결과 : 13

int index = str.indexOf('n');
System.out.println("맨 처음 문자 n의 위치 : " + index); // 결과 : 2

char c = str.charAt(2);
System.out.println("추출한 문자 : " + c); // 결과 : n

String str2 = str.substring(0,4); // 결과 : Hong
System.out.println("잘라낸 문자열 : " +str2);

// split() : 소괄호 안에 적힌 것을 기준으로 문자열을 나눠서 문자열 배열에 넣어주는 기능
String [] str3 = str.split(" ");

for(int i=0; i<str3.length;i++) {
	System.out.printf("str3[%d] : %s\n",i,str3[i]);
}

// trim() : 문자열의 앞뒤 공백을 제거해주는 기능
System.out.println(str.trim());

String 클래스에 속해있는 메서드는 아니지만 유용한 메서드

문자열로 작성된 숫자를 실제 정수로 바꿔주는 코드

String number = "1";
System.out.println(Integer.parseInt(number)+10);

실제 정수를 문자열로 바꿔주는 코드

int number2 = 1;
System.out.println(Integer.toString(number2)+10);
profile
백엔드 지망 학부생

0개의 댓글