String is a sequence of characters that can be used to store and manipulate text. There are several ways to handle strings in Java. Which can be used to store and manipulate text in a program. In this blog post, we will cover the different topics in handling Strings in Java along with the frequently asked questions.
Table of Contents
Creation of String in Java
There are several ways to create a string in Java. The most common way is to use double quotes to create a string literal, like this:
String str = "Hello, World!";
We can also use the String
class’ constructor to create a string:
char[] helloArray = { 'h', 'e', 'l', 'l', 'o' };
String helloString = new String(helloArray);
System.out.println(helloString);
Output:
hello
String concatination in Java
We can concatenate two strings using the +
operator, like this:
String str1 = "Hello";
String str2 = "World";
String str3 = str1 + ", " + str2 + "!";
Output:
Hello, World!
String conversion in Java
We can also convert other data types to strings using the String.valueOf()
method. For example:
int num = 123;
String str = String.valueOf(num);
Changing case
Java provides two methods to change the case of a string. These methods include toLowerCase()
and toUpperCase()
. Following is an example of how to use these methods:
String str = "Hello, World!";
str = str.toLowerCase();
System.out.println("Lower Case: "+str);
str = str.toUpperCase();
System.out.println("Upper Case: "+str);
Output:
Lower Case: hello, world!
Upper Case: HELLO, WORLD!
Character extraction
We can extract a single character from a string using the charAt()
method. This method takes an index as an argument and returns the character at that index. For example:
String str = "Hello, World!";
char first = str.charAt(0);
char last = str.charAt(str.length() - 1);
System.out.println("First Character: "+first);
System.out.println("Last Character: "+last);
Output:
First Character: H
Last Character: !
String comparison
Java provides several ways to compare strings. The most common way is to use the equals()
method, which compares the contents of two strings. For example:
String str1 = "Hello, World!";
String str2 = "Hello, World!";
if (str1.equals(str2)) {
System.out.println("The strings are equal.");
} else {
System.out.println("The strings are not equal.");
}
Output:
The strings are equal.
Searching
Java provides different methods to search for a particular character or substring within a string. The indexOf()
method returns the index of the first occurrence of a character or substring within a string.
For example:
String str = "Hello, World!";
int index = str.indexOf('o');
Output:
4
We can also use the lastIndexOf()
method to find the index of the last occurrence of a character or substring within a string. For example:
String str = "Hello, World!";
int index = str.lastIndexOf('o');
Output:
8
Note
As we all know array index starts from 0 (Zero), the string character count is also starts from 0. This is the reason that, the above two example code prints 4 and 8 insted of 5 and 9.
Modify String in Java
In Java, strings are immutable, which means that once a string is created, it cannot be modified. However, we can create a new string that is a modified version of an existing string. For example, we can use the replace()
method to replace a particular character or substring with a new character or substring.
Let’s see an example below:
String str = "Hello, World!";
str = str.replace('o', 'O'); // replaces lowercase o with upper case O
Output:
"HellO, WOrld!"
We can also use the substring()
method to extract a portion of a string. This method takes two arguments: the start index and the end index of the substring. For example:
String str = "Hello, World!";
String sub = str.substring(6, 11);
Output:
Worl
StringBuffer and StringBuilder
In addition to the String
class, Java provides two other classes for handling strings. These are:
StringBuffer
andStringBuilder
These classes are similar to String but they are mutable, which means that we can modify their contents.
StringBuffer
is thread-safe, which basically means that it can be used in a multithreaded environment without any issues. However, it is slower than StringBuilder
because StringBuffer synchronizes every method call to ensure thread safety.
StringBuilder
is not thread-safe, but it is faster than StringBuffer
because it does not synchronize every method call. It is generally recommended to use StringBuilder
unless thread safety is required.
Following is an example of how to use StringBuilder
:
StringBuilder sb = new StringBuilder("Hello");
sb.append(", World!");
The output of the above program is:
Hello, World!
Conclusion
Java provides several ways to handle strings, including creation, concatenation, conversion, case changing, character extraction, comparison, searching, and modification. It also provides the StringBuffer
and StringBuilder
classes for handling strings in a multithreaded environment or for optimizing performance.
FAQs
What is a string in Java?
A string in Java is a sequence of characters. Strings are represented internally as an array of Unicode characters.
How to create a string in Java?
There are two ways to create a string in Java:
Using string literals: String literals are enclosed in double quotes. For example, String s = "Coder Sathi!";
.
Using the new
keyword: The new
keyword is used to create a new instance of a class. For example, String s = new String("Coder Sathi");
.
Why is the String
class immutable?
The String
class is immutable, meaning that once a string object is created, its value cannot be changed. This makes strings thread-safe, this means that they can be safely used by multiple threads without any synchronization.
What are some common string handling mistakes to avoid?
The common string handling mistakes to avoid are:
Modifying a string literal. String literals are immutable, so you cannot modify them.
Using the ==
operator to compare strings instead of to use the equals()
method.
Using mutable string classes, such as StringBuffer
and StringBuilder
, unnecessarily.