Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

trim() removes newline char at the front?

 
srinadh penugonda
Greenhorn
Posts: 13
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi java experts,
If I use trim() on a string that might contain newline char, will it be removed?
From the documentation, it says trim() removes leading and trailing whitespaces.
At the same time, I see this:
A character is a Java whitespace character if and only if it satisfies one of the following criteria:
It is a Unicode space character (SPACE_SEPARATOR, LINE_SEPARATOR, or PARAGRAPH_SEPARATOR) but is not also a non-breaking space ('\u00A0', '\u2007', '\u202F').
It is '\u0009', HORIZONTAL TABULATION.
It is '\u000A', LINE FEED.
It is '\u000B', VERTICAL TABULATION.
It is '\u000C', FORM FEED.
It is '\u000D', CARRIAGE RETURN.
It is '\u001C', FILE SEPARATOR.
It is '\u001D', GROUP SEPARATOR.
It is '\u001E', RECORD SEPARATOR.
It is '\u001F', UNIT SEPARATOR.

So, if I assume trim() removes any of the above characters, is my assumption right?
 
Steve Luke
Bartender
Posts: 4181
22
IntelliJ IDE Java Python
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Can you think of an easy way to test this, then report back to us to let us know the results?
 
srinadh penugonda
Greenhorn
Posts: 13
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That is also my dilemma. How to test this? How to put newline char in a test string???
 
Campbell Ritchie
Sheriff
Pie
Posts: 49733
69
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by srinadh penugonda:
That is also my dilemma. How to test this? How to put newline char in a test string???
Sounds more like a beginner's question.

Look in the Java Tutorials.
 
srinadh penugonda
Greenhorn
Posts: 13
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks
You guys have really been of great help!!!
Much appreciated.
- a java beginner
 
Peter Johnson
author
Bartender
Posts: 5852
7
Android Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There is no such thing as a newline character - newline is a concept that is implemented differently based on the OS:

In dos/windows it is 0x0D0A (CARRIAGE RETURN, LINE FEED)

In Linux/Unix it is 0x0A (LINE FEED)

On a Mac it is 0x0D (CARRIAGE RETURN) [or at least that is what I recall before OS/X, not sure if it is still the case]

Therefore, yes, trim() will remove newlines because it removes the characters used to represent newlines on the various OSes.
 
Alan Moore
Ranch Hand
Posts: 262
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The definition of whitespace characters you quoted comes from from the Character API docs; it has no bearing on the trim() method. The trim() doc tells exactly what it removes: characters whose ASCII value is less than or equal to 32 (or 0x20, the space character). That includes linefeeds and carriage returns.
[ August 21, 2008: Message edited by: Alan Moore ]
 
Barclay Dunn
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here is a sample test class that you might run to see how trim() works on some strings:

Uncomment the testString on which you want to see what the effect of trim() is, and run the code. If you use an IDE, you can probably run the code right in the IDE.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic