본문 바로가기

카테고리 없음

Operator5_ 부정연산자 / 문자열 동등 비교

1.부정연산자 _ !

    주어진 조건이나 상수를 반대로 부정한다

 

 


 

상수(Constant)

    변하지 않는 값

 

리터럴 (literal)

  1. 정수형 literal _ 1, 2, 25, 60, -10 ...
  2. 실수형 literal_ 25.1, 26.7 ....
  3. 문자형 literal_ 'a', 'v', 'A', 'B' ....
  4. 문자열 literal_ "Car", "Meal" ....

4.문자열 literal의 경우, 같은 문자열(값)이 입력될 경우 같은 값으로 확인되어지지만

 

1)문자열클래스 String을 이용한 경우와

2)별도의 객체 생성을 통해 입력된 값

두가지 방법으로 만들어 질 수 있는데 

 

객체 생성을 통해 만들어진

 클래스 영역으로 생성되는 인스턴스이므로

연산자를 통해 확인해도 다르게 확인된다.(주소값이 다름 false)

		String b = "apple";				// "문자열 literal"
		String c = new String("apple"); //
		String d = "apple";
		String e = new String("apple");
		
		System.out.println(" b == c : " + (b == c?  "같다" : "다르다") );	// 다르다
		System.out.println(" b == d : " + (b == d?  "같다" : "다르다") );	// 같다
		System.out.println(" c == e : " + (c == e?  "같다" : "다르다") );	// 다르다

그렇기때문에, 문자열을 비교하기 위해서는

equals()함수를 사용하여 문자열의 동일여부를 비교할 수 있다.

		String b = "apple";				// "문자열 literal"
		String c = new String("apple"); //
        
        System.out.println(" b == c : " + (b == c?  "같다" : "다르다") );	// 다르다
        System.out.println( "b.equals(c) : " + (b.equals(c)? "같다" : "다르다")); // 같다 .equals()통해 비교

 

 


 

01_basic / src / Operator / Operator5.java

package Operator;

public class Operator5 {

	public static void main(String[] args) {
		boolean a = 25 > 55 ;
		System.out.println(" a = " + a);
		System.out.println(" !a = " + !a);
		System.out.println();
		
		String b = "apple";				// "문자열 literal"
		String c = new String("apple"); //
		String d = "apple";
		String e = new String("apple");
		
		System.out.println(" b == c : " + (b == c ?  "같다" : "다르다") );	// 다르다
		System.out.println(" b == d : " + (b == d ?  "같다" : "다르다") );	// 같다
		System.out.println(" c == e : " + (c == e ?  "같다" : "다르다") );	// 다르다
		System.out.println();
		
		System.out.println( "b.equals(c) : " + (b.equals(c) ? "같다" : "다르다"));	//같다
		System.out.println( "!b.equals(c) : " + (!b.equals(c) ? "참" : "거짓"));	//거짓
	
	}

}
  • 부정연산자를 이용하여 true - false 값을 변경할 수 있다
  • 같은 방법으로 조건을 반대로 적용할 수 있다
  • String 클래스로 선언하는 변수는 객체 선언없이 생성가능하다
  • 객체를 생성하는 인스턴스는 주소값을 가지며 같은 값을 가진다 하더라도 인스턴스의 주소값이 다르기 때문에 동등비교에도 false가 뜬다
  • 객체생성없이 선언한 String 변수는 값을 가지므로 동등비교가 가능하다.
  • 객체를 생성하는 인스턴스의 값을 비교하기 위해서는 .equals() 를 사용하여 비교가 가능하다.