Correct use of TrimEnd

Welcome Forums General PowerShell Q&A Correct use of TrimEnd

This topic contains 2 replies, has 2 voices, and was last updated by

 
Participant
1 year, 6 months ago.

  • Author
    Posts
  • #72649

    Participant
    Points: 0
    Rank: Member

    I am having a hard time removing a string element with TrimEnd. I am trying to remove the '.jrnl' from the strings

    human.jrnl and
    humans.jrnl

    using the following

    $journal = "humans.jrnl"
    $journal.ToLower().TrimEnd(".jrnl")

    This works fine with humans but human returns the string 'huma'. What is the correct way to accomplish this?

  • #72653

    Keymaster
    Points: 1,704
    Helping HandTeam Member
    Rank: Community Hero

    TrimEnd() technically takes an array of single characters, not a string. See https://msdn.microsoft.com/en-us/library/system.string.trimend(v=vs.110).aspx. PowerShell is likely turning ".jrnl" into an array, which means it will remove ., j, r, n, and l from the end. TrimEnd() is a bit more powerful than you might realize.

    But for what you're doing, it'd be much easier just to do a...

    $journal = $journal -replace ".jrnl",""

  • #72658

    Participant
    Points: 0
    Rank: Member

    Thanks for the reply. I will use the replace function. I find it interesting that TrimEnd is consuming only specific extra characters. I have noticed the behavior with 'n' and 'r' so maybe it is treating them as ascii codes.

The topic ‘Correct use of TrimEnd’ is closed to new replies.