How to Optimize String Concatenation in Java?
Last Updated :
02 Dec, 2020
Strings are defined as an array of characters. The difference between a character array and a string is the string is terminated with a special character ‘\0’. Since arrays are immutable(cannot grow), Strings are immutable as well. Whenever a change to a String is made, an entirely new String is created.
Concatenation is the process of joining end-to-end. Let us take an example to understand what concatenation means in English.
Person 1 speaking to Person 2 - ItsCodingEra
Person 2 speaking to Person 1 - 2020India
Now, let us carry a process whose output is as follows- ItsCodingEra2020India
This process is called concatenation.
Example:
Input String = "Geeks" + "for" + "Geeks";
OutputString = "GeeksforGeeks" ;
There are numerous ways by which we can tell computers to do so which are called methods. Let us describe how a computer can perform an action via our methods in different ways.
This action can take place via 4 methods :
- Using '+' operator
- Using concat() inbuilt method
- Using StringBuilder
- Using StringBuffer
Lets us describe and implement them one by one.
Method 1: String Concatenation using '+' Operator
Java
// Java program to concatenate string
import java.lang.*;
class GFG {
public static void main(String[] args)
{
String str = "";
// timer-start time
long startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
// string concatenation
str += Integer.toString(0);
}
// timer-end time
long endTime = System.currentTimeMillis();
// display the result
System.out.println(
"Time taken to concatenate 100000 Strings using '+' operator : "
+ (endTime - startTime) + " ms");
}
}
OutputTime taken to concatenate 100000 Strings using '+' operator : 2126 ms
Method 2: using concat() Inbuilt function
Concat(String str) method concatenates the specified String to the end of this string. This method appends the specified string at the end of the given string and returns the combined string.
Example :
String str="GeeksforGeeks";
s1 = s1.concat(".").concat("com");
Java
// Java program to concatenate string
import java.lang.*;
class GFG {
public static void main(String[] args)
{
String str = "";
long startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
str.concat(Integer.toString(0));
}
long endTime = System.currentTimeMillis();
System.out.println(
"Time taken to concatenate 100000 Strings using concat() method : "
+ (endTime - startTime) + " ms");
}
}
OutputTime taken to concatenate 100000 Strings using concat() method : 46 ms
Method 3: By using StringBuilder (Best Way)
StringBuilder represents a mutable sequence of characters. Since the String Class in Java creates an immutable sequence of characters, the StringBuilder class provides an alternative to String Class, as it creates a mutable sequence of characters.
Example :
StringBuilder str = new StringBuilder();
str.append("GFG");
Time Complexity for concatenation using StringBuilder method:
Java
// Java program to concatenate string
import java.lang.*;
class GFG {
public static void main(String[] args)
{
StringBuilder str = new StringBuilder();
long startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
str.append(0);
}
long endTime = System.currentTimeMillis();
System.out.println(
"Time taken to concatenate 100000 Strings using StringBuilder append : "
+ (endTime - startTime) + " ms");
}
}
OutputTime taken to concatenate 100000 Strings using StringBuilder append : 34 ms
Method 4: By using StringBuffer
StringBuffer is a peer class of String that provides much of the functionality of strings. The string represents fixed-length, immutable character sequences while StringBuffer represents growable and writable character sequences.
Example :
StringBuffer s = new StringBuffer("GeeksforGeeks");
Java
// Java program to concatenate string
import java.lang.*;
class GFG {
public static void main(String[] args)
{
StringBuffer str = new StringBuffer();
long startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
str.append(0);
}
long endTime = System.currentTimeMillis();
System.out.println(
"Time taken to concatenate 100000 Strings using StringBuffer append : "
+ (endTime - startTime) + " ms");
}
}
OutputTime taken to concatenate 100000 Strings using StringBuffer append : 41 ms
Similar Reads
How to Concatenate Multiple Strings in Java?
In Java programming, there are a lot of ways to concatenate multiple strings. For this, we have taken three or more String values then we concatenate those String values by using different ways. In this article, we have used two different ways, we will explain each method with one example for a bett
2 min read
How to Pad a String in Java?
Padding a String in Java involves adding extra characters, which may be spaces, zeros, or other given characters to the beginning or end of a string to meet a desired length. This is normally used in formatting outputs or aligning texts.Example:The String.format() method is a simple way to pad strin
3 min read
How to Remove Duplicates from a String in Java?
Working with strings is a typical activity in Java programming, and sometimes we need to remove duplicate characters from a string. In this article we have given a string, the task is to remove duplicates from it. Example Input: s = "geeks for geeks"Output: str = "geks for" Remove Duplicates From a
2 min read
How to Convert a String to URL in Java?
In Java, a string is a sequence of characters. A URL, which is short for Uniform Resource Locator, refers to a web resource that specifies its location on a computer network and provides the mechanism for retrieving it. To represent a URL in Java, we use the java.net.URL class. In this article, we w
2 min read
Java Program to Create String from Contents of a File
A File is a computer resource which is deployed to store different types of data such as text, image, video, to name a few. It is basically a collection of data bound to a single entity. While using your computer, it becomes essential to be able to deal with files and in this article we will be lear
6 min read
How to Find the Longest Common Prefix of Two Strings in Java?
In this article, we will find the longest common prefix of two Strings in Java. Examples: Input: String 1= geeksforgeeks, String 2 = geezerOutput: âgeeâ Input: String 1= flower, String 2 = flightOutput: âflâ Methods to Find the Longest common Prefix of two Strings in JavaBelow are the methods by whi
4 min read
Java Program to Concatenate Two List
Concatenating two lists means merging two lists into a single list. Consider the given lists: LIST 1LIST 2LIST AFTER CONCATENATION There are several methods to perform concatenation operation: Using addAll() methodUsing streamUsing union() Method 1: Using addAll() method Syntax: addAll ( list name )
3 min read
Convert ArrayList to Comma Separated String in Java
ArrayList is a part of collection framework and is present in java.util package. It provides us with dynamic arrays in Java. In order to convert ArrayList to a comma-separated String, these are the approaches available in Java as listed and proposed below as follows: Earlier before Java 8 there were
5 min read
Convert camel case string to snake case in Java
Given a string in camel case, the task is to write a Java program to convert the given string from camel case to snake case and print the modified string. Examples: Input: GeeksForGeeks Output: geeks_for_geeks Input: CamelCaseToSnakeCase Output: camel_case_to_snake_case Method 1: Naive Approach Firs
3 min read
Convert Snake Case string to Camel Case in Java
Given a string in Snake Case, the task is to write a Java program to convert the given string from snake case to camel case and print the modified string. Examples: Input: str = "geeks_for_geeks" Output: GeeksForGeeks Input: str = "snake_case_to_camel_case" Output: SnakeCaseToCamelCase Method 1: Usi
3 min read