In Java, String
is a widely used class that represents a sequence of characters. The String
class is immutable, meaning once a String
object is created, its value cannot be modified.
Java provides several ways to create and manipulate strings using constructors, operators, and built-in methods.
1. String Creation
Using String Literals:
- When a string is created using double quotes (
""
), it is stored in the String Pool.
String str1 = "LotusJavaPrince";
String str2 = "LotusJavaPrince"; // Refers to the same object as str1
Code language: JavaScript (javascript)
Using the new
Keyword:
-
This creates a new object in the heap, even if the same value exists in the String Pool.
String str3 = new String("LotusJavaPrince");
Code language: JavaScript (javascript)
Using char[]
Array:
char[] chars = {'M', 'a', 'h', 'e', 's', 'h'};
String str4 = new String(chars);
Code language: JavaScript (javascript)
Using StringBuilder
or StringBuffer
:
StringBuilder sb = new StringBuilder("Java");
String str5 = sb.toString();
Code language: JavaScript (javascript)
2. String Comparison
- Using
==
Operator: Checks for reference equality. - Using
.equals()
Method: Checks for content equality. - Using
.compareTo()
Method: Compares lexicographically.
String str1 = "Mahesh";
String str2 = "Mahesh";
String str3 = new String("Mahesh");
// Reference Comparison
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
// Content Comparison
System.out.println(str1.equals(str3)); // true
// Lexicographical Comparison
System.out.println(str1.compareTo("Java")); // Positive value (str1 > "Java")
Code language: JavaScript (javascript)
3. String Manipulation Methods

Example Program
public class StringManipulationDemo { public static void main(String[] args) { String str1 = " LotusJavaPrince "; String str2 = "Mahesh"; // Trim and Length String trimmed = str1.trim(); System.out.println("Trimmed: '" + trimmed + "'"); System.out.println("Length: " + trimmed.length()); // Concatenation String combined = trimmed.concat(" - ").concat(str2); System.out.println("Concatenated: " + combined); // Substring String subStr = combined.substring(6, 16); System.out.println("Substring (6, 16): " + subStr); // Character Access char ch = str2.charAt(3); System.out.println("Character at index 3 in '" + str2 + "': " + ch); // Replace String replaced = combined.replace('a', '@'); System.out.println("Replaced 'a' with '@': " + replaced); // Uppercase and Lowercase System.out.println("Uppercase: " + combined.toUpperCase()); System.out.println("Lowercase: " + combined.toLowerCase()); // Checking Content boolean containsJava = combined.contains("Java"); System.out.println("Contains 'Java': " + containsJava); // Index of int index = combined.indexOf("Prince"); System.out.println("Index of 'Prince': " + index); // Last Index of int lastIndex = combined.lastIndexOf('e'); System.out.println("Last index of 'e': " + lastIndex); } } /* Trimmed: 'LotusJavaPrince' Length: 14 Concatenated: LotusJavaPrince - Mahesh Substring (6, 16): aPrince - M Character at index 3 in 'Mahesh': e Replaced 'a' with '@': LotusJ@v@Prince - M@hesh Uppercase: LOTUSJAVAPRINCE - MAHESH Lowercase: lotusjavaprince - mahesh Contains 'Java': true Index of 'Prince': 8 Last index of 'e': 24 */
5. String Immutability:
In Java, strings are immutable, meaning once a string object is created, it cannot be modified.
String original = "Java";
original.concat("Planet");
System.out.println(original); // Output: Java
Code language: JavaScript (javascript)
The concat()
method does not modify the original string but returns a new string object.
Java provides a comprehensive set of string manipulation methods for creating, modifying, and accessing strings. Understanding string immutability, comparison, and the use of StringBuilder
or StringBuffer
is crucial for optimal memory management and performance.
For more practice…
String class
Java provides a comprehensive set of string manipulation methods for creating, modifying, and accessing strings. Understanding string immutability, comparison, and the use of StringBuilder
or StringBuffer
is crucial for optimal memory management and performance.