Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Correct way to trim a string in Java

In Java, I am doing this to trim a string:

String input = " some Thing "; System.out.println("before->>"+input+"<<-"); input = input.trim(); System.out.println("after->>"+input+"<<-"); 

Output is:

before->> some Thing <<- after->>some Thing<<- 

Works. But I wonder if by assigning a variable to itself, I am doing the right thing. I don't want to waste resources by creating another variable and assigning the trimmed value to it. I would like to perform the trim in-place.

So am I doing this right?

like image 546
Quest Monger Avatar asked Nov 29 '13 18:11

Quest Monger


People also ask

How do you trim a string in Java?

The trim() method in Java String is a built-in function that eliminates leading and trailing spaces. The Unicode value of space character is '\u0020'. The trim() method in java checks this Unicode value before and after the string, if it exists then removes the spaces and returns the omitted string.

What is the trim method in Java?

Java String trim() Method The trim() method removes whitespace from both ends of a string. Note: This method does not change the original string.

What a trim () in string does?

The trim() method removes whitespace from both ends of a string and returns a new string, without modifying the original string. Whitespace in this context is all the whitespace characters (space, tab, no-break space, etc.)

How trim and remove from string in Java?

To remove leading and trailing spaces in Java, use the trim() method. This method returns a copy of this string with leading and trailing white space removed, or this string if it has no leading or trailing white space.


2 Answers

You are doing it right. From the documentation:

Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared.

Also from the documentation:

trim

public String trim()

Returns a copy of the string, with leading and trailing whitespace omitted. If this String object represents an empty character sequence, or the first and last characters of character sequence represented by this String object both have codes greater than '\u0020' (the space character), then a reference to this String object is returned.

Otherwise, if there is no character with a code greater than '\u0020' in the string, then a new String object representing an empty string is created and returned.

Otherwise, let k be the index of the first character in the string whose code is greater than '\u0020', and let m be the index of the last character in the string whose code is greater than '\u0020'. A new String object is created, representing the substring of this string that begins with the character at index k and ends with the character at index m-that is, the result of this.substring(k, m+1).

This method may be used to trim whitespace (as defined above) from the beginning and end of a string.

Returns:

A copy of this string with leading and trailing white space removed, or this string if it has no leading or trailing white space.

like image 112
gpojd Avatar answered Sep 17 '22 14:09

gpojd


As strings in Java are immutable objects, there is no way to execute trimming in-place. The only thing you can do to trim the string is create new trimmed version of your string and return it (and this is what the trim() method does).

like image 44
aga Avatar answered Sep 21 '22 14:09

aga