Strings are a fundamental part of almost every Java application. Whether you are building complex algorithms, working with user input, or performing text manipulation, knowing how to efficiently use Java’s String
class methods is a must.
In this post, we’ll dive into some of the basic but essential string methods that every Java developer should know, especially for interviews.
1. equalsIgnoreCase()
: Case-Insensitive Comparison
The
equalsIgnoreCase()
method allows you to compare two strings without considering their case.It’s a handy method when you want to check for equality without worrying about uppercase or lowercase differences.
Example:
String string = "Hello";
System.out.println(string.equalsIgnoreCase("HeLLo")); // Result: true
2. toLowerCase()
and toUpperCase()
: Case Conversion
Converting a string to all lowercase or uppercase is a common task, and Java provides built-in methods to do this.
Example:
String string = "Hello";
System.out.println(string.toLowerCase()); // Result: hello
System.out.println(string.toUpperCase()); // Result: HELLO
3. startsWith()
and endsWith()
: Check String Boundaries
If you need to check if a string starts or ends with a particular sequence of characters, these methods are what you need.
They’re case-sensitive by default, so be mindful when using them.
Example:
String string = "Hello";
System.out.println(string.startsWith("h")); // Result: false
System.out.println(string.endsWith("lo")); // Result: true
Common Interview Question
How do you check if a given string starts with a specific substring, ignoring the case?
This is a common interview question to test your understanding of string manipulation and case-insensitivity in Java.
The startsWith()
method is case-sensitive by default, so to perform a case-insensitive check, you need to standardize both the string and the substring to the same case using toLowerCase()
or toUpperCase()
.
Here’s how you can implement it:
String givenString = "Example";
String givenCharacterString = "e";
System.out.println(
givenString.toLowerCase().startsWith(
givenCharacterString.toLowerCase()
)
); // Result: true
Explanation:
startsWith()
: This method checks if the string begins with the specified substring, but it is case-sensitive.toLowerCase()
: Converts both the original string and the substring to lowercase to perform a case-insensitive comparison.
By converting both strings to the same case, you can ensure that the method works even if the input string or substring contains mixed-case characters.
4. toCharArray()
: Convert String to Character Array
If you need to work with individual characters, converting a string to a character array is easy with the toCharArray()
method.
Example:
String string = "Hello";
System.out.println(
Arrays.toString(string.toCharArray())
); // Result: [H, e, l, l, o]
Explanation:
We used Arrays.toString()
to print the character array in the format [H, e, l, l, o]
. If we directly use System.out.println(string.toCharArray())
, the output will display the array elements as a string Hello
.
This is due to the fact that the println()
method has an overloaded version for character arrays.
For more details on this behavior, refer to Polymorphism: Decoding Method Overloading in Java.
5. charAt()
, indexOf()
, and lastIndexOf()
: Character Search
These methods help you find specific characters within a string.
charAt()
: Returns the character at a given index in the string.indexOf()
: Finds the first occurrence of a specified character. Returns-1
if not present.lastIndexOf()
: Finds the last occurrence of a specified character. Returns-1
if not present.
Example:
String string = "Hello";
System.out.println(string.charAt(0)); // Result: H
System.out.println(string.indexOf('l')); // Result: 2
System.out.println(string.lastIndexOf('l')); // Result: 3
6. contains()
: Substring Presence Check
When you want to check if a string contains a particular substring, the contains()
method comes to the rescue.
Example:
String string = "Hello";
System.out.println(string.contains("l")); // Result: true
7. replace()
: Replacing Characters or Substrings
The replace()
method is used to replace characters or substrings with new values. It’s an essential method for text processing.
Example:
String string = "Hello";
System.out.println(string.replace('l', 'p')); // Result: Heppo
System.out.println(string.replace("pp", "ll")); // Result: Hello
8. split()
: Splitting Strings into Parts
The split()
method divides a string into an array of substrings based on a delimiter. It’s useful for parsing text data.
Example:
String string2 = " Welcome to Strings ";
System.out.println(Arrays.toString(string2.split(" ")));
// Result: [, Welcome, to, Strings]
9. compareTo()
: Lexicographical Comparison
The compareTo()
method compares two strings lexicographically. It returns a positive number if the string is greater, a negative number if it's smaller, or 0 if they’re equal.
Example:
String string = "Hello";
System.out.println(string.compareTo("Hllo")); // Result: -7
10. isBlank()
and isEmpty()
: Check String State
isBlank()
: Returnstrue
if the string is empty or contains only whitespace.isEmpty()
: Returnstrue
if the string has no characters at all.
Example:
String string1 = " ";
System.out.println(string1.isBlank()); // Result: true
System.out.println(string1.isEmpty()); // Result: false
11. matches()
: Regular Expression Matching
The matches()
method checks if the string matches the given regular expression. It’s a powerful tool for text pattern matching.
Example:
String string = "Hello";
System.out.println(string.matches("(.*)l(.*)")); // Result: true
12. trim()
: Removing Extra Whitespaces
The trim()
method removes any leading and trailing spaces from a string, making it easier to work with user input or clean data.
Example:
String string2 = " Welcome to Strings ";
System.out.println(string2.trim()); // Result: Welcome to Strings
Conclusion
Mastering these string methods is crucial for anyone working in Java, especially when preparing for interviews. Whether you're dealing with user input, processing text data, or manipulating strings for performance, these methods are your go-to tools. From handling case sensitivity to trimming whitespace, Java provides a rich set of utilities for string manipulation that every developer should be comfortable with.
Related Posts
- Java Fundamentals
- Array Interview Essentials
- Java Memory Essentials
- Java Keywords Essentials
- Java OOPs Essentials
- Collections Framework Essentials
Happy Coding!
Top comments (2)
Good article! One point to add, many of the methods shown only work on the BMP, which is a subset of Unicode. Usually that's good enough. When it isn't, you should use the ICU library's methods instead.
Thank you for pointing that out!
I appreciate you adding that helpful information to the content. 😊