Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #25338

Re: how to trim() a String only at the right side?

From markspace <markspace@nospam.nospam>
Newsgroups comp.lang.java.programmer
Subject Re: how to trim() a String only at the right side?
Date 2013-09-25 13:31 -0700
Organization A noiseless patient Spider
Message-ID <l1vh7v$bjh$1@dont-email.me> (permalink)
References <slrnl45qr1.mol.avl@gamma.logic.tuwien.ac.at>

Show all headers | View raw


On 9/25/2013 6:55 AM, Andreas Leitgeb wrote:
> I'd need to trim only *trailing* whitespace off a String (or StringBuilder)
> while preserving leading white space. Furthermore (unlike trim()), I'd only
> strip exact \u0020 chars, no other control chars.
>
> I could code a while-loop to search for last non-\u0020 char position and then
> extract the approriate substring (or delete() the spaces), but if there is a
> more elegant solution that I've missed in the javadocs, then I'd be glad about
> a hint.
>
> PS: no need to code out any solutions involving explicit loops.
> PPS: target is Java SE 7
>


Other than download some Apache string utils, I don't think there is 
anything better than just using a loop.  Most of the examples here were 
fairly in efficient: extra concatenation or recursion are going to be 
less efficient, potentially *a lot* less efficient.

The only thing I'd add would be an explicit test to see if you need to 
bother or not (which could be a micro-optimization), and maybe consider 
CharSequence instead of just String.

   public CharSequence rTrim( CharSequence cs ) {
     if( cs == null ) return null;
     if( cs.length() == 0 || cs.charAt( cs.length()-1 ) != ' ' )
       return cs;
     int i = cs.length()-1;
     while( i >= 0 && cs.charAt( i ) == ' ' ) i--;
     return cs.substring( 0, i );
   }

Not compiled or tested.



Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

how to trim() a String only at the right side? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-25 13:55 +0000
  Re: how to trim() a String only at the right side? Eric Sosman <esosman@comcast-dot-net.invalid> - 2013-09-25 10:25 -0400
  Re: how to trim() a String only at the right side? "John B. Matthews" <nospam@nospam.invalid> - 2013-09-25 12:55 -0400
  Re: how to trim() a String only at the right side? Jim Janney <jjanney@shell.xmission.com> - 2013-09-25 13:05 -0600
  Re: how to trim() a String only at the right side? Silvio <silvio@internet.com> - 2013-09-25 21:46 +0200
  Re: how to trim() a String only at the right side? markspace <markspace@nospam.nospam> - 2013-09-25 13:31 -0700
    Re: how to trim() a String only at the right side? markspace <markspace@nospam.nospam> - 2013-09-25 13:41 -0700
      Re: how to trim() a String only at the right side? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-26 17:11 +0000
    Re: how to trim() a String only at the right side? Silvio <silvio@internet.com> - 2013-09-26 12:14 +0200
    Re: how to trim() a String only at the right side? Jim Janney <jjanney@shell.xmission.com> - 2013-09-26 09:44 -0600
      Re: how to trim() a String only at the right side? Arne Vajhøj <arne@vajhoej.dk> - 2013-09-26 13:01 -0400
  Re: how to trim() a String only at the right side? lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-09-26 12:21 +0100
    Re: how to trim() a String only at the right side? lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-09-26 17:40 +0100
  Re: how to trim() a String only at the right side? Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2013-09-26 16:56 +0000

csiph-web