'This is a string.'  trimRight: [ :c | c = $. ]   works fine for me. 

The trimRight method will return a new string object without the punctuation. 
If you just do the expression without assigning it into a variable/method call, 
then it will have no effect because strings are immutable so the original 
string will remain unchanged. 
------------
  | myString trimmedString |
  myString := 'This is a string.' .
  trimmedString := 'This is a string.'  trimRight: [ :c | c = $. ].
  1 assert: (trimmedString last = $.) not; 
   assert: myString ~~ trimmedString;
   assert: myString last = $.

-----------
 
Other trim options:

'This is a string.' allButLast.
'This is a string.' reject: [ :c | c =$. ].
'This is a string.' copyReplaceAll: '.' with: ''.
'' join: ($. split: 'This is a string.' ).
'This is a string.'  onlyLetters.
'This is a string.'  withoutPeriodSuffix.

Best regards,
Henrik

-----Original Message-----
From: Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] On Behalf Of 
Brad Selfridge
Sent: Wednesday, September 14, 2016 10:34 PM
To: pharo-users@lists.pharo.org
Subject: [Pharo-users] trimRight: problem

I have a string that has an ending period (example - 'This is a string.'). I 
want to trim the trailing period off of the string. I've tried using: 

 'This is a string.' trimRight: [ :ea | ea = $. ] 

But, the period is not trimmed. Is there a way to do this without me having to 
extend the String class? 



-----
Brad Selfridge
--
View this message in context: 
http://forum.world.st/trimRight-problem-tp4915603.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.


Reply via email to