문자열(String)
- 여러 글자를 의미하는 인스턴스로 java.lang.String 클래스를 이용합니다.
- 문자열의 특성상 특정 용량을 지정할 수 없으므로 객체로 작업합니다.
- 문자열 생성법
String str = new String("문자열");
String str = "믄자열"; // 유일하게 문자열에서만 허용하는 방법java.lang.String
하지만 생성 방법에 따라 다른 인스턴스를 가질 수 있다.
.
.
예제
class StringEx1
{
public static void main(String[] args)
{
String str1 = "abcd";
String str2 = "abcd";
String str3 = new String("abcd");
if (str1 == str2)
{
System.out.println("str1과 str2는 같다.");
}else{
System.out.println("str1과 str2는 다르다.");
}//동일한 인스턴스로 취급되어 서로 같다라고 나옴
if (str2 == str3)
{
System.out.println("str2과 str3는 같다.");
}else{
System.out.println("str2과 str3는 다르다.");
}
// 다른 인스턴스이므로 서로 다름
if (str1 == str3)
{
System.out.println("str1과 str3는 같다. \n");
}else{
System.out.println("str1과 str3는 다르다. \n");
}
//다른 인스턴스이므로 서로 다름
// 문자열은 변수처럼 보이나 인스턴스이므로 같은지 여부를 검사할 경우
// 연산자 '=='이 아닌 메소드(compaTo(), equals() 등)를 사용해야 함
System.out.println("compareTo() 사용");
if (str1.compareTo(str2) == 0)
{
System.out.println("str1과 str2는 같다.");
}else{
System.out.println("str1과 str2는 다르다.");
}
if (str2.compareTo(str3) == 0)
{
System.out.println("str2과 str3는 같다.");
}else{
System.out.println("str2과 str3는 다르다.");
}
if (str1.compareTo(str3) == 0)
{
System.out.println("str1과 str3는 같다. \n");
}else{
System.out.println("str1과 str3는 다르다. \n");
}
// compareTo()는 String의 문자열 비교후 int형으로 리턴함
// 같으면 0, 다르면 음수 또는 양수
System.out.println("equals() 사용");
if (str1.equals(str2))
{
System.out.println("str1과 str2는 같다.");
}else{
System.out.println("str1과 str2는 다르다.");
}
if (str2.equals(str3))
{
System.out.println("str2과 str3는 같다.");
}else{
System.out.println("str2과 str3는 다르다.");
}
if (str1.equals(str3))
{
System.out.println("str1과 str3는 같다. \n");
}else{
System.out.println("str1과 str3는 다르다. \n");
}
// eqauls()는 String의 문자열 비교후 boolean으로 리턴함.
String str4 = "azz";
String str5 = "baa";
System.out.println(str4.compareTo(str5));
// 원본 문자열이 비교 문자열보다 사전적으로 앞서 있으면 음수, 뒤쳐지면 양수.
}
}
서로 같은 문자인 것을 확인하기 위해서는
compareTo() 나 equals()를 사용해야 한다.
int compareTo(String anotherString) : 문자열의 값 비교로 같으면 0, 다르면 양수 또는 음수가 나옵니다.
int compareToIgnoreCase(String str) : compareTo()와 같으나 대소문자를 구분하지 않고 비교합니다.
boolean equals(Object anObject) : 문자열의 값이 같은지 여부를 확인합니다.
boolean equalsIgnoreCase(String anotherString) : equals()와 같은 역할을 하며 대소문자를 구별하지 않습니다.
compareTo()는 int type으로 반환되고,
equals()는 boolean type으로 반환됨을 기억해야 한다.
728x90
반응형
'Java > 본격 Java 스트링' 카테고리의 다른 글
[Java] String 메소드 활용 3 (0) | 2020.06.26 |
---|---|
[Java] String 메소드 활용 2 (0) | 2020.06.26 |
[Java] String 메소드 (0) | 2020.06.26 |
[Java] 오버로딩(overloading) (0) | 2020.06.26 |