String.concat în Java

Returnează un șir nou format din șirul curent urmat de str; echivalent cu + pentru două șiruri.

Sintaxă
String concat(String str)

Ce face String.concat

a.concat(b) returnează un șir nou: a urmat de b. Ca toate metodele String, nu modifică a.

Diferențe față de operatorul +: concat acceptă doar un String (nu numere), aruncă NullPointerException dacă argumentul este null (pe când + scrie textul "null") și, dacă b este gol, returnează chiar a. În practică, + este folosit mult mai des.

Parametri

Parametru Descriere
str Șirul adăugat la final. Nu poate fi null.

Ce returnează

Șirul nou; sau același obiect, dacă str este gol.

Exemple

Exemplul 1: concat și +

public class Main {
    public static void main(String[] args) {
        String prenume = "Ana";
        String nume = prenume.concat(" ").concat("Popescu");
        System.out.println(nume);
        System.out.println(prenume);
        System.out.println(prenume + " are " + 21 + " de ani");
        System.out.println(prenume.concat("") == prenume);
    }
}

Rezultat

Ana Popescu
Ana
Ana are 21 de ani
true

Exemplul 2: Diferența la null

public class Main {
    public static void main(String[] args) {
        String oras = null;
        System.out.println("Oraș: " + oras);
        try {
            System.out.println("Oraș: ".concat(oras));
        } catch (NullPointerException e) {
            System.out.println("concat a aruncat NullPointerException");
        }
    }
}

Rezultat

Oraș: null
concat a aruncat NullPointerException

Greșeli frecvente

  • Încerci s.concat(5): nu compilează, concat primește doar String. Folosește s + 5 sau s.concat(String.valueOf(5)).
  • Uiți că rezultatul trebuie salvat: s.concat("!") singur nu schimbă s.

Comenzi înrudite

  • String.join: Lipește mai multe șiruri într-unul singur, cu un separator între ele (opusul lui split).
  • StringBuilder.append: Adaugă la sfârșitul textului un șir, un caracter, un număr sau orice obiect și returnează același StringBuilder.
  • String.valueOf: Transformă orice valoare (număr, boolean, char, obiect, char[]) în String; copyValueOf face un șir dintr-un char[].
  • String: Clasa pentru text în Java: un șir de caractere care nu se mai poate modifica după ce a fost creat.