티스토리 뷰

IT/Java

문자열 결합 연산자

오예봉봉 2020. 4. 15. 21:40


이 연산자는 + 기호를 사용하고 문자열을 연결하여 주는 기능을 하는 연산자이다. 프로그래밍에서 문자와 문자열은 구별하여야 한다. 일반적으로 문자는 char 타입이고 문자열은 string 타입이다. + 기호는 프로그래밍에서 자주 등장한다. 따라서 등장하는 장소에서 역할 혹은 기능을 잘 살펴 보아야 한다. 문자열 결합 연산자 이외에도 산술 연산자 , 부호 연산자가 + 기호를 사용하기 때문이다.

피 연산자 중 한쪽이 문자열이면 + 연산자는 문자열 결합 연산자로 간주되어 다른 피 연산자를 문자열로 바꾸고 서로 결합하게 된다. 아래 예제를 봅시다.


1. String string 1 = "ABC" + 7.0 ;

2. String string 2 = string 1 + " 버전" ;

 

1행에서 + 연산자의 피 연산자 중 하나("ABC")가 문자열이므로 + 연산자는 문자 결합 연산자의 기능을 한다.  따라서 , 7.0은 문자열 데이터가 아님에도 문자열로 간주되어 string 1 값은 ABC7.0 이 나온다. 2 행에서도 같은 원리가 적용되어 string 2 에는 "ABC7.0 버전"이 저장된다. 


+ 연산자가 산술 연산자인가 문자열 결합 연산자인가 헷갈리는 경우가 있다. 아래 예제를 봅시다.


1. "ABC" + 1 + 1.0 ;

2. 1 + 1.0 + "ABC" ;


문자열과 숫자가 섞여 있는 + 연산은 좌측에서 우측으로 연산이 진행된다. 따라서 , 1행은 "ABC" + 1 이 먼저 연산 되어 "ABC1" 이라는 문자열이 나온다. 이 문자열이 다음 + 1.0 과 연산이 되어 결국 ABC11.0 이라는 결과가 나오게 된다. 

2행의 경우 1+1.0 이 먼저 연산 되어 1.1 이라는 실수가 나오고 그 실수와 문자열 "ABC"가 + 연산 , 즉

문자 결합 연산을 하게 되어 "1.1 ABC" 가 산출 된다. + 기호가 산술 연산으로 기능하느냐 아니면 문자 결합 연산자로 기능하느냐 에 따라서 결과가 달라질 수 있으므로 +연산자 판단에 주의가 필요하다.


문자열 결합 연산자에 관한 종합 예제를 봅시다.

public class Example {

public static void main(String[ ] args) {

                                String string 1 = "ABC" + 6.0;

                        String string 2 = string 1 + " 버전";

           System.out.println(string 2);

           String string 3 = "ABC" + 3 + 3.0;

           String string 4 = 3 + 3.0 + "ABC";


           System.out.println(string 3);

                   System.out.println(string 4);

}

}


위 예제의 실행 결과는 다음과 같다.


ABC6.0 버전
ABC33.0
6.0ABC



'IT > Java' 카테고리의 다른 글

논리 연산자  (0) 2020.04.18
비교 연산자  (0) 2020.04.16
산술 연산자  (0) 2020.04.14
단항 연산자 (2)  (0) 2020.04.13
단항 연산자 (1)  (0) 2020.04.12