(JAVA) String 타입, equls(),비교연산자==

InAnarchy·2022년 10월 20일
0

JAVA

목록 보기
3/18
post-thumbnail

Table of Contents

  • String 클래스
  • String 변수에 문자열을 저장하는 법
  • 비교연산자 사용(==,equals()메소드)
  • 객체를 참조하는 배열
  • String 배열의 선언과 생성
  • String 배열의 초기화

String 클래스

  • String클래스는 char[]와 메서드를 결합한 것
  • 내용을 변경할 수 없다(읽는 것만 가능)

String 변수에 문자열을 저장하는 법

  1. ""로 감싼 문자열 리터럴을 대입한다.
String 변수 = "문자열";

그런데 문자열 리터럴이 동일하다면 String 객체를 공유하도록 되어있다.

String lang1 = "java";
String lang2 = "java";

와 같이 lang1,lang2 변수가 동일한 문자열 리터럴 "java"를 참조하다면
두 변수는 같은 String 객체를 공유하게 된다.

  1. new 객체생성 연산자를 사용한다.
String lang1 = new String("java");
String lang2 = new String("java");

이 경우에는 lang1,lang2는 서로 다른 String 객체를 참조하게 된다.

비교연산자 사용(==,equals()메소드)

String lang1 = "java";
String lang2 = "java";
String lang3 = new String("java");

의 경우를 보도록 하자.

  1. == 연산자
public class StringEqual {
    public static void main(String[] args) {
        String lang1 = "java";
        String lang2 = "java";
        String lang3 = new String("java");

        System.out.println(lang1 == lang2);
        System.out.println(lang2 == lang3);
        System.out.println(lang1 == lang3);
    }
}
output
true
false
false

lang3은 String객체를 별도로 생성했기 때문에 lang1,lang2과 객체의 번지수가 다르다.

  1. equals() 메소드
public class StringEqual {
    public static void main(String[] args) {
        String lang1 = "java";
        String lang2 = "java";
        String lang3 = new String("java");

        System.out.println(lang1.equals(lang2));
        System.out.println(lang2.equals(lang3));
        System.out.println(lang1.equals(lang3));
    }
}

equals()메소드는 원본 문자열과 매개값의 문자열이 동일한지 비교해준다!

output
true
true
true

3.equalsIgnoreCase() 메소드
대소문자를 구분하지 않고 비교하고 싶다면 equals()대신 equalsIgnoreCase()를 사용한다.

public class StringEqual {
    public static void main(String[] args) {
        String str1 = "apple";
        String str2 = "APPLE";

        if(str1.equalsIgnoreCase(str2))
            System.out.println(str1 + "==" + str2);
    }
}

객체를 참조하는 배열

String[] 배열의 항목은 String변수와 동일하게 취급된다.

public class StringEqual {
    public static void main(String[] args) {
        String[] strArr = new String[3];
        strArr[0] = "java";
        strArr[1] = "java";
        strArr[2] = new String("java");

        System.out.println(strArr[0] == strArr[1]);
        System.out.println(strArr[0] == strArr[2]);
        System.out.println(strArr[0].equals(strArr[2]));
    }
}
output
true
false
true

String 배열의 선언과 생성

String[] name = new String[3]; //3개의 문자열을 담을 수 있는 배열

참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화된다.

public class StringArray {
    public static void main(String[] args) {
        String[] name = new String[3]; //배열 생성
        for(int i = 0; i< name.length; i++){
            System.out.println(name[i]);
        }
    }
}
output
null
null
null

String 배열의 초기화

배열의 각 요소(인덱스)에 문자열을 지정한다.

String[] name = new String[3]; //배열 생성
name[0] = "kim";
name[1] = "lee";
name[2] = "park";

또는

String[] name = new String[]{"kim","lee","choi"};
String[] name = {"kim","lee","choi"};
public class StringArray {
    public static void main(String[] args) {
        String[] name = new String[3]; //배열 생성
        name[0] = "kim";
        name[1] = "lee";
        name[2] = "park";
        for(int i = 0; i< name.length; i++){
            System.out.println(name[i]);
        }
    }
}
profile
github blog 쓰다가 관리하기 귀찮아서 돌아왔다

0개의 댓글