
//문자열 리터럴을 String 타입의 변수 name에 할당하는 방법
String name1 = "King Coding";
//String 클래스의 인스턴스를 생성하는 방법
String name2 = new String("Kim Coding");
String 변수명; 으로 선언할 수 있음변수 = "문자열";변수 = new String("문자열");String name1 = "Kim Coding";
String name2 = "Kim Coding";
String name3 = new String("Kim Coding");
String name4 = new String("Kim Coding");
boolean comparsion1 = name1 == "Kim Coding"; //true
booelan comparison2 = name1 == name2; //true
boolean comparison3 = name1 == name3; //false
boolean comparison4 = name3 == name4; //false
boolean comparison5 = name1.equals("Kim Coding"); //true
boolean comparison6 = name1.equals(name3); //true
booelan comparison7 = name3.equals(name4); //true
== : 좌항의 값과 우항의 값이 일치하면 true, 일치하지 않으면 false
equals() : .앞의 변수가 저장하고 있는 문자열의 내용과 () 안의 문자열의 내용이 같은지 비교하여 같으면 true, 다르면 false
comparison1
- name1은 Kim Coding이라는 문자열 리터럴을 직접 할당받았으며, 비교의 대상이 되는 우항 또한 Kim Coding이라는 내용이 같은 문자열. 문자열 리터럴은 내용이 같다면 같은 주소같을 가지기 때문에 true가 반환됨.
comparison2
- name1과 name2는 내용이 같은 문자열 리터럴을 직접 할당받은 변수. 두 변수는 같은 문자열의 참조값을 가지므로, true가 반환됨.
comparison3
- name1은 문자열 리터럴을 할당 받은 변수이며, name3은 String 클래스를 통해 인스턴스를 생성하여 할당받은 변수. String 클래스로 인스턴스를 생성하면 항상 별개의 인스턴스가 생성됨. 따라서 name1과 name3은 다른 주소값을 저장하고 있게 되므로 false가 반환됨.
comparison4
- name3과 name4는 둘 다 String 클래스로 인스턴스를 생성하여 할당받은 변수. String 클래스로 인스턴스를 생성하면 항상 별개의 인스턴스가 생성되므로 두 변수는 서로 다른 주소값을 저장하게 됨. 결과값으로 false가 반환됨.
comparison5
- equals() 메서드를 활용하여 name1과 "Kim Coding"의 내용이 같은지 비교. 둘은 참조값도 같고 내용도 같음. equals() 메서드는 내용이 같은지만을 비교함. 따라서 결과값으로 true가 반환됨.
comparison6
-equals() 메서드를 활용하여 name1과 name3의 문자열 내용이 같은지 비교. name1과 name3은 참조값이 서로 다르지만 내용은 같음. 따라서 결과값으로 true가 반환됨.
comparsion7
- equals() 메서드를 활용하여 name3과 name4의 문자열 내용이 같은지 비교. comparison6의 경우와 마찬가지로, name3과 name4는 서로 다른 참조값을 가지지만, 이 둘이 가리키고 있는 인스턴스의 내용은 같음. 따라서 결과값으로 true가 반환됨.
compareToIgnoreCase() 메서드를 사용toLowerCase() : 해당 문자열의 모든 문자를 소문자로 변환toUppserCase() : 해당 문자열의 모든 문자를 대문자로 변환자주 사용하는 메서드
true를 반환하고 그렇지 않으면 false를 반환StringBuilder의 객체를 생성한 후, append()의 인자로 연결하고자 하는 문자열을 넣어서 StringBuilder의 객체를 통해 호출. 문자를 출력할 때, 변수에 문자열을 할당할 때에는 toString() 메서드를 사용
인스턴스의 값을 변경하거나 추가할 수 있는 메서드.
내부적으로 버퍼(buffer)라는 이름의 독립적인 공간을 가짐
버퍼 크기의 기본값은 16개의 문자를 지정할 수 있는 크기, 생성자를 통해 그 크기를 별도로 설정할 수 있음
append() : 인수로 전달된 값을 문자열로 변환한 후, 해당 문자열의 마지막에 추가. String class의 concat() 메서드와 같은 결과를 반환하지만, 내부적인 속도는 훨씬 빠름.
capacity() : StringBuffer 인스턴스의 현재 버퍼 크기를 반환
delete() : 전달된 인덱스에 해당하는 부분 문자열을 해당 문자열에서 제거. deleteCharAt() 메서드를 사용하면 특정 위치의 문자 한 개만 제거 가능.
insert() : 인수로 전달된 값을 문자열로 변환한 후, 해당 문자열의 지정된 인덱스 위치에 추가. 전달된 인덱스가 해당 문자열의 길이와 같으면 append() 메서드와 같은 결과를 반환.
선언한 벼수에 문자열을 할당하는 방법..