CodeGym /Blog Java /Aleatoriu /Concatenarea șirurilor în Java
John Squirrels
Nivel
San Francisco

Concatenarea șirurilor în Java

Publicat în grup
Concatenarea șirurilor Java este o operație de unire a două sau mai multe șiruri de caractere și de a returna unul nou. De asemenea, operația de concatenare poate fi folosită pentru a transforma tipuri în șiruri. Puteți concatena șiruri în Java în două moduri diferite.

metoda concat().

Metoda Concat() adaugă șirul specificat la sfârșitul șirului dat și apoi returnează și apoi returnează un șir nou format. Sigur că putem folosi metoda concat() pentru a uni trei sau mai multe șiruri.

Semnătura metodei concat().


public String concat(String str)
Metoda concatenează șirul str la sfârșitul șirului curent. De exemplu:

String s1 = “Hello ”; 
s1.concat("World")
returnează un șir nou „Hello World”.

Exemplu de metodă Concat().

Să conectăm două șiruri după inițializare, apoi să conectăm mai multe șiruri. Și încă un exemplu interesant: vom crea o metodă care să returneze mesaje diferite în funcție de argument.

public class ConcatTest {

    public static void main(String[] args) {
        //String concat with concat() method 
        String string1 = "I learn ";
        String string2 = "concatenation in Java";
        //here we use concat() method to join the two strings above
        String result = string1.concat(string2);
        System.out.println(result);
        //concat() method to join 4 strings
        String myWebSite = "Code".concat("Gym").concat(".cc").concat("/quest");
        System.out.println(myWebSite); // here we've got  "CodeGym.cc/quest"

        System.out.println(myMessage(true));
        System.out.println(myMessage(false));
    }

    private static String myMessage(boolean b) {   //concat() method with selection statement 
        return "I have".concat(b ? " " : "n't ").concat("got it");
    }

}
Ieșirea este:
Învăț concatenarea în Java CodeGym.cc/quest Am înțeles Nu am înțeles
Este important de știut că metoda concat() nu modifică șirul, ci creează unul nou ca urmare a îmbinării celui actual și a celui trecut ca parametru. Deci metoda returnează un nou obiect String , de aceea puteți crea lanțuri atât de lungi de String concat.

Concatenare folosind operatorii supraîncărcați „+” și „+="

Puteți utiliza acești doi operatori în același mod ca și în cazul numerelor. Ele funcționează la fel ca concat() . Să concatenăm șirul „Cod” și șirul „Gym”.

public class StringConcat {
   public static void main(String[] args) {

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
De obicei, Java nu permite operațiuni de supraîncărcare pentru clasele de utilizatori, dar acești doi operatori funcționează ca supraîncărcați. S-ar putea să credeți că în interiorul operatorului + se ascunde concat() , dar, de fapt, un alt mecanism este folosit aici. Dacă ne uităm la codul octet al programului Java, vom vedea că a fost creat StringBuilder și este folosită metoda lui append() . Compilatorul Java vede operatorul „+” și realizează că operanzii sunt șiruri de caractere, nu tipuri primitive. Deci funcționează ca concat.

public class StringTest2 {

   public static void main(String[] args) {

       String hello = "hello";
       String world = " world!";

       String helloworld = (new StringBuilder().append(hello).append(world).toString());
       System.out.println(helloworld);
       //this is the same as:
       String result = hello + world;
   }
}

Concat(0) sau + ?

Dacă trebuie să îmbinați șirurile de caractere o singură dată, utilizați metoda concat() . Pentru toate celelalte cazuri, este mai bine să utilizați operatorul + sau Stringbuffer / StringBuilder . De asemenea, operatorul + este folosit pentru a converti tipuri. Dacă unul dintre operanzi este egal, de exemplu, numărul și al doilea este un șir, atunci la ieșire vom obține un șir. Exemplu:

public class StringConcat {
   public static void main(String[] args) {
       int myInt = 5;
       String myString = " days";

       System.out.println(myInt + myString);
       boolean b = (myInt + myString) instanceof String;
       System.out.println(b);
   }
}
Am folosit instanceof pentru a verifica dacă (myInt + myString) este un șir. Iată rezultatul acestui program:
5 zile adevarat
De asemenea, rețineți că operatorul + și concat() funcționează diferit dacă unul dintre șiruri este nul. Dacă unul dintre operanzi atunci când se utilizează operatorul + sau += este doar unul - un șir, atunci, așa cum am spus deja, are loc conversia tipului. Același lucru este valabil și pentru nul. Vom primi doar un șir nou:

public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
Ieșirea este:
carte nul adevărat
Dacă aplicăm metoda concat() pentru aceeași operație, atunci vom obține o NullPointerException .

public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString.concat(null));

   }
}
Ieșirea este:
Excepție în firul „principal” java.lang.NullPointerException la java.base/java.lang.String.concat(String.java:1972) la StringConcat.main(StringConcat.java:6)
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION