Pages

Monday, February 25, 2019

String concat() in java with example

String concat() method in java with example:

concat() method is present in the java.lang.String class. concat() method concatenate the given string at a time. This method concatenates the specified string to the end of this string and returns a new string with the new value. This mehtod can be used to concatenate multiple strings one by one. This method can be called multiple times on the string.

Syntax:

public String concat​(String str)


Return value: String


String concat() in java with example


A string that represents the concatenation of this object's characters followed by the string argument's characters.

In Java 8, a new method join() is introduced. String join() method example to concatenate the given string with a delimiter.


String concat() method example 1:


In this example, we will see how to concat the two strings.

package examples.java.w3schools.string;

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

  String value1 = "java";
  String value2 = "w3schools";
  System.out.println("Value1 and value2 values before concatenating");
  System.out.println("Value1 : " + value1);
  System.out.println("Value2 : " + value2);

  value2 = value1.concat(value2);

  System.out.println("Value2 after concatenating value1: " + value2);
 }
}


Here, We can observe that new value2 is appended to value1 at end. Please refer the following output.

Output:

Value1 and value2 values before concatenating
Value1 : java
Value2 : w3schools
Value2 after concatenating value1: javaw3schools


string-concat-example-1



String concat() method example 2:


In example 2, We will see how to concat multiple strings at a time. Previously, we have seen how to add at the end of the string for  a single string.

package examples.java.w3schools.string;

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

  String string1 = "java";
  String string2 = "-";
  String string3 = "w3schools";
  String string4 = " blog";

  String finalString = string1.concat(string2).concat(string3).concat(string4);

  System.out.println("Concatenating multiple strings: " + finalString);
 }
}



Output:



Concatenating multiple strings: java-w3schools blog

string-concat-example-2

String concat() method example 3:

In example 3, We will learn how to concat a string in different way at the beginning of the string.


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

  String string1 = "java-w3schools";
  String finalString = "blogspot.com".concat(string1);
  System.out.println("Concatenating at begining of existing string: " + finalString);
 }
}

Output:

Concatenating at begining of existing string: blogspot.comjava-w3schools

string-concat-example-3

String concat() method example 4:

If the string2 length is ZERO then original string1 will be returned.

  String str3 = "hello";
  String str4 = "";
  str3 = str3.concat(str4);
  System.out.println("If second string length is 0: " + str3);
  System.out.println("str3.equals(str4) :: " + str3.equals(str4));



Output:


Concatenating at begining of existing string: blogspot.comjava-w3schools
string-concat-example-4


String concat() method Internal Implementation:


We will see now how concat method is implemented internally or how concat works internally.

below is the internal code.

public String concat(String str) {
        int olen = str.length();
        if (olen == 0) {
            return this;
        }
        if (coder() == str.coder()) {
            byte[] val = this.value;
            byte[] oval = str.value;
            int len = val.length + oval.length;
            byte[] buf = Arrays.copyOf(val, len);
            System.arraycopy(oval, 0, buf, val.length, oval.length);
            return new String(buf, coder);
        }
        int len = length();
        byte[] buf = StringUTF16.newBytesFor(len + olen);
        getBytes(buf, 0, UTF16);
        str.getBytes(buf, len, UTF16);
        return new String(buf, UTF16);
    }


Steps:


Here are the steps performed internally for every time concat() method is invoked.

str1.concat(str2);

Remember: In java 8, String uses byte[] to store the characters (not char[] array).

1) Checks the length of str2. If str2 length is 0 then return str1.
2) Checks the coder value of both strings. Gets lengths of both strings.
   Creating new byte array with new length.
   newLength = str1.length() + str2.length();
   
   Copying the values of str1 into new byte array using Arrays.copyOf(str1, newLength);
   Then copying str2 into new byte array by using System.arraycopy(str2, 0, new array, str1.length, str2.length);
   Retrun new byte array as string.

3) If coder values different then
   Creats a new byte array using StringUTF16.newBytesFor(str1.length + str2.length)
   loads the data into new byte array as per UTF16 format.
   Retrun new byte array new String(buf, UTF16);


Please post your questions in comments section.


No comments:

Post a Comment

Please do not add any spam links in the comments section.