CodeGym /Java blog /Tilfældig /Strengsammenkædning i Java
John Squirrels
Niveau
San Francisco

Strengsammenkædning i Java

Udgivet i gruppen
Java String-sammenkædning er en operation til at forbinde to eller flere strenge og returnere en ny. Sammenkædningsoperationen kan også bruges til at støbe typer til strenge. Du kan sammenkæde strenge i Java på to forskellige måder.

concat() metode

Concat()- metoden tilføjer den angivne streng i slutningen af ​​den givne streng og returnerer derefter og returnerer derefter en ny dannet streng. Selvfølgelig kan vi bruge concat() metoden til at forbinde tre eller flere strenge.

Concat()-metodesignaturen


public String concat(String str)
Metoden sammenkæder strengen str i slutningen af ​​den aktuelle streng. For eksempel:

String s1 = “Hello ”; 
s1.concat("World")
returnerer en ny streng "Hello World".

Concat() metode eksempel

Lad os sammensætte to strenge efter deres initialisering, og derefter sammensætte flere strenge. Og endnu et interessant eksempel: vi skal skabe en metode, der ville returnere forskellige beskeder i henhold til argumentet.

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");
    }

}
Udgangen er:
Jeg lærer sammenkædning i Java CodeGym.cc/quest Jeg har det, jeg har det ikke
Det er vigtigt at vide, at concat()- metoden ikke ændrer strengen, men opretter en ny som et resultat af at flette den nuværende og den, der sendes som en parameter. Så metoden returnerer et nyt String- objekt, det er derfor, du kan oprette så lange kæder af String Concat.

Sammenkædning ved hjælp af overbelastede operatorer "+" og "+="

Du kan bruge disse to operatorer på samme måde som med tal. De fungerer ligesom concat() . Lad os sammenkæde strengen "Code" og strengen "Gym".

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

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
Normalt tillader Java ikke overbelastningsoperationer for brugerklasser, men disse to operatører fungerer som overbelastede. Du tror måske, at inde i + -operatoren gemmer sig concat() , men faktisk bruges en anden mekanisme her. Hvis vi ser på Java-programmet bytecode, vil vi se, at StringBuilder blev oprettet, og dens append() metode er brugt. Java-kompileren ser "+"-operatoren og indser, at operander er strenge, ikke primitive typer. Så det fungerer som 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) eller + ?

Hvis du kun skal flette strenge én gang, skal du bruge concat()- metoden. I alle andre tilfælde er det bedre at bruge enten + eller Stringbuffer / StringBuilder operatoren. Operatoren + bruges også til at konvertere typer. Hvis en af ​​operanderne er lig, f.eks. tallet, og den anden er en streng, så får vi ved udgangen en streng. Eksempel:

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);
   }
}
Vi brugte instanceof til at kontrollere, om (myInt + myString) er en streng. Her er output fra dette program:
5 dage sandt
Bemærk også, at + operatoren og concat() fungerer anderledes, hvis en af ​​strengene er null. Hvis en af ​​operanderne, når du bruger + eller += operatoren, kun er én — en streng, så sker der, som vi allerede har sagt, typekonvertering. Det samme gælder null. Vi får lige en ny streng:

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

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
Udgangen er:
bog null sand
Hvis vi anvender concat() -metoden for den samme operation, får vi en NullPointerException .

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

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

   }
}
Udgangen er:
Undtagelse i tråden "main" java.lang.NullPointerException på java.base/java.lang.String.concat(String.java:1972) på StringConcat.main(StringConcat.java:6)
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION