String

String 타입의 변수는 String 변수명; 으로 선언할 수 있다. 선언한 변수에 문자열을 할당하는 방법은 두 가지가 있다.

문자열 리터럴을 할당하는 방법 : 변수 = “문자열”;
String 클래스의 인스턴스를 생성하여 할당하는 방법 : 변수 = new String(”문자열”);

String name1 = "Kim Coding";
String name2 = "Kim Coding";

String name3 = new String("Kim Coding");
String name4 = new String("Kim Coding");

boolean comparison1 = name1 == "Kim Coding";      // true 직접 할당, 내용이 같으면 같은 주소값
boolean comparison2 = name1 == name2;             // true 직접 할당 받은 변수, 같은 문자열 참조값
boolean comparison3 = name1 == name3;             // false String은 별개의 인스턴스, 다른 주소값
boolean comparison4 = name3 == name4;             // false 별개의 인스턴스, 다른 주소값
boolean comparison5 = name1.equals("Kim Coding"); // 참조값, 내용 같음, true equals는 내용이 같은지만 확인
boolean comparison6 = name1.equals(name3);        // true 참조값은 다르지만 내용이 같음
boolean comparison7 = name3.equals(name4);        // true 참조값은 다르지만 인스턴스가 같음



String 클래스의 메서드

length() 메서드 : 철자의 개수를 리턴합니다.

String str = "Java";

System.out.println(str.length()); // 4

charAt() 메서드

특정 인덱스에 해당하는 문자를 반환합니다. 음수는 오류가 발생합니다.

String str = new String("Java");
System.out.println("문자열 : " + str); // "문자열 : Java"

System.out.println(str.charAt(0)); // 'J'

compareTo() 메서드

숫자

 Integer x = 3;
        Integer y = 4;
        Double z = 1.0;

        System.out.println( x.compareTo(y) );  // -1
        System.out.println( x.compareTo(3) );  //  0
        System.out.println( x.compareTo(2) );  //  1
        System.out.println( z.compareTo(2.7) );  //  -1

기준 값과 비교대상이 동일한 값일 경우 0 기준 값이 비교대상 보다 작은 경우 -1 기준 값이 비교대상 보다 큰 경우 1

문자

String str = "abcd";

        // 1) 비교대상에 문자열이 포함되어있을 경우
        System.out.println( str.compareTo("abcd") );  // 0 (같은 경우는 숫자나 문자나 0을 리턴)
        System.out.println( str.compareTo("ab") );  //  2  "abcd"(4) - "ab"(2) = 2
        System.out.println( str.compareTo("a") );  //  3 "abcd"(4) - "a"(1) = 3
        System.out.println( str.compareTo("c") );  //  -2      
        System.out.println( "".compareTo(str) );  //  -4

        // 2) 비교대상과 전혀 다른 문자열인 경우
        System.out.println( str.compareTo("zefd") );  //  -25
        System.out.println( str.compareTo("zEFd") );  //  -25
        System.out.println( str.compareTo("ABCD") );  //  32
    }

System.out.println( str.compareTo(“c”) ); // -2 인 이유
comparTo는 같은 위치의 문자만 비교하기 때문에, 첫번째 문자부터 순서대로 비교해서 다를 경우 바로 아스키값을 기준으로 비교처리를 합니다.
비교가 불가능한 지점의 각 문자열의 아스키값을 기준으로 비교를 합니다.
“abcd” 와 “c” 를 비교해줄 경우 첫번째 위치에서 비교가 실패했기 때문에, “a” 와 “c”의 아스키코드 값의 차이값을 리턴합니다.

대소문자 구분을 피하고 싶으면 compareToIgnoreCase() 을 사용하면 됩니다.

출처: https://mine-it-record.tistory.com/133

concat() 메서드

String str = new String("Java"); // 
System.out.println("문자열 : " + str); //  문자열 : Java
System.out.println(str.concat("수업")); // Java수업

indexOf() 메서드

해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환합니다.
만약 해당 문자열에 전달된 문자나 문자열이 포함되어 있지 않으면 -1을 반환합니다.

trim() 메서드

해당 문자열의 맨 앞과 맨 뒤에 포함된 모든 공백 문자를 제거해 줍니다.

toLowerCase()와 toUpperCase() 메서드

모든 문자를 소문자로 변환시켜 줍니다.

toUpperCase() 메서드

문자열의 모든 문자를 대문자로 변환시켜 줍니다.

참고: https://www.javatpoint.com/understanding-toString()-method