Correct use of TrimEnd

This topic contains 2 replies, has 2 voices, and was last updated by  Scott Halepaska 5 months, 2 weeks ago.

  • Author
    Posts
  • #72649

    Scott Halepaska
    Participant

    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

    Don Jones
    Keymaster

    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

    Scott Halepaska
    Participant

    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.

You must be logged in to reply to this topic.