//문자열 리터럴을 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()
메서드와 같은 결과를 반환.
선언한 벼수에 문자열을 할당하는 방법..