문자열 (String)
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