[Java의 정석]Chapter5.배열(12~15)

Hello_Wendy·2022년 4월 14일
0

자바의 정석

목록 보기
29/61
post-thumbnail

Chapter 5. 배열

12. String배열의 선언과 생성

  • 배열의 타입이 String인 경우에도 int배열의 선언과 생성방법은 같음

    	ex) 3개의 문자열(String)을 담을 수 있는 배열 생성
    	string[] name = new String[3]; 
  • 3개의 String타입의 참조변수를 저장하기 위한 공간이 마련되고 참조형 변수의 기본값은 null 이므로 각 요소의 값은 null로 초기화 됨

  • null은 어떠한 객체도 가리키고 있지 않다는 뜻

    🍟 변수의 타입에 따른 기본값

자료형기본값
booleanfalse
char'\u0000'
byte, short, int0
long0L
float0.0f
double0.0d 또는 0.0
참조형null

13. String배열의 초기화

  • int배열과 동일한 방법으로 초기화

  • 배열의 각 요소에 문자열을 지정

    	String[]name = new String[3]; //길이가 3인 String배열을 생성
    	name[0] = "Kim";
    	name[1] = "Park";
    	name[2] = "Yi";
  • 또는 중괄호{}를 사용해서 다음과 같이 간단히 초기화 가능

    	String[] name = new String[]{"Kim", "Park", "yi"};
    	String[] name = {"Kim", "Park", "Yi"}; //new String[]을 생략 가능

  • 특별히 String 클래스만 "Kim"과 같이 큰따옴표만으로 간략히 표현하는 것이 허용되지만, 원래 String은 클래스이므로 new연산자를 통해 객체를 생성해야 함
String[]name = new String[3];
name[0] = "Kim";
name[1] = "Park";
name[2] = "Yi";
*큰 따옴표만으로 간략히 표현하는 것이 허용

String[] name = new String[3];
name[0] = new String("Kim");
name[1] = new String("Park");
name[3] = new String("Yi");
*하지만, 원래 String은 클래스이므로 new연산자 통해 객체 생성해야함

14. String 클래스

  • String 클래스 : char배열에 기능(메서드)을 추가한 것
  • 객체지향언어인 자바에서는 char배열과 그에 관련된 기능들을 함께 묶어서 클래스에 정의
  • 즉, 서로 관련된 것들끼리 데이터와 기능을 구분하지 않고 함께 묶는 것
  • 기능 = 함수 = 메서드(객체지향 언어에서 사용하는 용어)
  • char배열과 String클래스의 차이점 : String객체(문자열)는 읽을 수만 있을 뿐 내용 변경 불가
String str = "Java";
str = str + "8";	//"Java8"이라는 새로운 문자열이 str에 저장
System.out.println(str); //"Java8"
→문자열 str의 내용이 변경되는 것 같지만, 문자열을 변경할 수 없으므로 새로운 내용의 문자열이 생성
→변경 가능한 문자열을 다루려면, StringBuffer 클래스를 사용(9장 참고)

15. String클래스의 주요 메서드

🍟String클래스의 문자열 관련 메서드 (기본적인 메서드-9장에서 심화)

메서드설명
char charAt(int index)문자열에서 해당 위치(index)에 있는 문자 하나를 반환
int length()문자열의 길이를 반환
String substring(int from, int to)문자열에서 해당범위(from~to)의 문자열 반환(to는 포함X)
boolean equals(Object obj)문자열의 내용이 같은지 확인. 같으면 true 다르면 false
char[ ]toCharArray( )문자열을 문자배열(char[ ])로 변환해서 반환

👀charAt 메서드
: 문자열에 지정된 index에 있는 한 문자를 가져옴
: 배열에서 '배열이름[index]'로 index에 위치한 값을 가져오는 것과 동일
: 배열과 마찬가지로 charAt메서드의 index값은 0부터 시작

String str = "ABCDE";
char ch = str.charAt(3); //문자열 str의 4번째 문자 'D'를 ch에 저장
index  ▶ 0  1  2  3  4 
문자   ▶ A  B  C  D  E

👀substring()
: 문자열의 일부를 뽑아냄
: 주의 💨 범위의 끝은 포함되지 않음
: ex) index의 범위가 1~4라면 4는 범위에 포함되지 않음

String str = "012345";
String tmp = str.substring(1,4); //str에서 index범위 1~4의 문자들 반환
System.out.println(tmp);	     //"123" 출력

👀equals()
: 문자열의 내용이 같은지 다른지 확인하는데 사용
: 기본형 변수의 값을 비교하는 경우 '=='연산자를 사용하지만, 문자열의 내용을 비교할 때는 equals()사용
: 주의 💨 대소문자 구분
: 대소문자 구분하지 않고 비교하려면 equalsIgnoreCase() 사용

String str = "abc";
if(str.equals("abc")) { //str과 "abc"의 내용이 같은지 확인
...
}
profile
안녕 나의 새로운 세상

0개의 댓글