Java에서 문자열 연결

Rupam Yadav 2023년10월12일
  1. +연산자는 여러 유형의 값을 연결할 수 있지만concat()String값만 연결할 수 있습니다
  2. +는 값이 비어 있으면 새String을 생성하고concat()은 동일한 값을 반환합니다
  3. +null을 연결하지만concat()은 예외를 발생시킵니다
  4. +는 여러 값을 연결할 수 있지만concat()은 하나의 값만 가질 수 있습니다
Java에서 문자열 연결

오늘은concat()+연산자의 차이점을 살펴 보겠습니다. 둘 다Strings를 연결하는 데 사용되지만 서로 다른 점을 찾기 위해 여기에 있습니다.

+연산자는 여러 유형의 값을 연결할 수 있지만concat()String값만 연결할 수 있습니다

+concat()의 첫 번째 큰 차이점은+연산자를 사용하여String으로 여러 데이터 유형을 연결할 수 있지만concat()메소드는String유형 값.

내부를 살펴보면 모든 데이터 유형의 모든 값은+를 사용하여 값을 결합 할 때toString()메서드를 사용하여String으로 변환됩니다.

아래 예제는int bString a에 조인 할 수 있음을 보여줍니다. 그러나concat()에서 이것을 시도하면int 유형 값을 취할 수 없기 때문에 런타임 오류가 발생합니다.

package com.company;

public class Main {
  public static void main(String[] args) {
    String a = "String A-";
    int b = 5;

    System.out.println(a + b);
  }
}

출력:

String A-5

+는 값이 비어 있으면 새String을 생성하고concat()은 동일한 값을 반환합니다

주목해야 할 다음 큰 차이점은 길이가 0이더라도+는 값을 얻을 때마다 새로운String을 생성한다는 것입니다. 그러나concat()은 값의 길이가 0보다 큰 경우에만 새 문자열을 생성합니다.

아래에서 한 것처럼 두 문자열을 비교하려는 경우 결과를 많이 변경할 수 있습니다. 첫 번째 비교는 concat()을 사용하여 문자열을 연결할 때 수행되고 두 번째 비교는 +로 연결된 두 문자열을 비교 한 결과를 보여줍니다.

package com.company;

public class Main {
  public static void main(String[] args) {
    String a = "String A";
    String b = "";

    String d = a.concat(b);
    if (d == a) {
      System.out.println("String d and a are equal using concat");
    } else {
      System.out.println("String d and a are NOT equal using concat");
    }

    String e = a + b;
    if (e == a) {
      System.out.println("String e and a are equal using plus operator");
    } else {
      System.out.println("String e and a are NOT equal plus operator");
    }
  }
}

출력:

String d and a are equal using concat
String e and a are NOT equal plus operator

+null을 연결하지만concat()은 예외를 발생시킵니다

아래 예에서b 변수를null로 초기화해도 여전히 올바르게 연결된다는 것을 알 수 있습니다. 이는+연산자가 각 값을String으로 변환 한 다음 연결하기 때문입니다.

package com.company;

public class Main {
  public static void main(String[] args) {
    String a = "String A-";
    String b = null;

    System.out.println(a + b);
  }
}

출력:

String A-null

null이있는 ba에 연결하면 ‘+‘와 달리 일반적인 방식으로 올바른 출력 인 NullPointerException이 발생합니다.

package com.company;

public class Main {
  public static void main(String[] args) {
    String a = "String A-";
    String b = null;

    System.out.println(a.concat(b));
  }
}

출력:

Exception in thread "main" java.lang.NullPointerException
	at java.base/java.lang.String.concat(String.java:1937)
	at com.company.Main.main(Main.java:14)

+는 여러 값을 연결할 수 있지만concat()은 하나의 값만 가질 수 있습니다

+연산자는 다음 예 에서처럼 여러 값을 결합 할 수 있습니다. 그러나concat()함수는 하나의 인수 만 취하므로 두 개 이상의 값을 연결할 수 없습니다.

package com.company;

public class Main {
  public static void main(String[] args) {
    String a = "String A-";
    String b = "String B-";
    String c = "String C";

    System.out.println(a + b + c);

    System.out.println(a.concat(b));
  }
}

출력:

String A-String B-String C
String A-String B-
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java String