Course – LS – All

Get started with Spring and Spring Boot, through the Learn Spring course:

>> CHECK OUT THE COURSE

1. Overview

In this tutorial, we’ll study different approaches for removing beginning and ending double quotes from a String in Java.

What we’ll explore here can be useful for processing the text extracted from files or received from other sources.

2. Simple Approach: the substring Method

First, we’ll start with a simple approach by using the substring method. This method can be called on a String object to return a specific sub-string.

The method requires two parameters:

  1. beginIndex — the index of the character where the sub-string should begin
  2. endIndex — the index after where the sub-string should end

Thus, considering that our input String is enclosed in double-quotes, we can use the substring method:

String input = "\"text wrapped in double quotes\"";
String result = input.substring(1, input.length() - 1);
System.out.println("Input: " + input);
System.out.println("Result: " + result);

By executing the code above, we have the following output:

Input: "text wrapped in double quotes"
Result: text wrapped in double quotes

If we’re unsure whether the String will be enclosed in double-quotes or not, we can check it before running the substring method:

if (input != null && input.length() >= 2 
      && input.charAt(0) == '\"' && input.charAt(input.length() - 1) == '\"') {
    result = input.substring(1, input.length() - 1);
}

In the example above, we checked that the String has at least two characters and that it starts and ends with double quotes.

3. Using the replaceAll Method

In addition to the substring method, we can also use the replaceAll method. This method replaces all parts of the String that match a given regular expression. Using replaceAll, we can remove all occurrences of double quotes by replacing them with empty strings:

String result = input.replaceAll("\"", "");

On one hand, this approach has the advantage of removing all occurrences of double quotes, even if the string has multiple lines. On the other hand, with this approach, we’re unable to remove only the double quotes at the beginning and end of the String.

To remove double quotes just from the beginning and end of the String, we can use a more specific regular expression:

String result = input.replaceAll("^\"|\"$", "");

After executing this example, occurrences of double quotes at the beginning or end of the String will be replaced by empty strings.

To understand this approach, let’s break down our regular expression.

First, we have a caret symbol (^), followed by escaped double quotes (\”) for matching double quotes at the beginning of the String. Then there’s a pipe symbol (|) to indicate a matching alternative, similar to the OR logical operator.

Finally, we have escaped double quotes, followed by a dollar symbol ($) for matching double quotes at the end of the String.

4. Using Guava

Another possible approach for removing double quotes from the beginning and end of a String is to use the CharMatcher class from the Guava library:

String result = CharMatcher.is('\"').trimFrom(input);

This approach is simpler to understand, and removes only the beginning and end quotes from the String. However, for this approach to work, we need to add the guava library to our project:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>${guava-version}</version>
</dependency>

In this case, we need to set the ${guava-version} property to the version we want to use.

5. Conclusion

In this article, we explored different options for removing double quotes at the beginning and end of a String. We can apply any of these approaches in practice, and each of them have advantages and disadvantages.

For example, when using the Guava library, we have a simple and elegant solution. However, if Guava wasn’t included in our project, this solution would require the addition of a new dependency.

As always, the code presented in this article is available over on GitHub.

Course – LS – All

Get started with Spring and Spring Boot, through the Learn Spring course:

>> CHECK OUT THE COURSE
res – REST with Spring (eBook) (everywhere)
Comments are open for 30 days after publishing a post. For any issues past this date, use the Contact form on the site.