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, 9 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,811
    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.

denizli escort samsun escort muğla escort ataşehir escort kuşadası escort