Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. c# string operation

c# string operation

Scheduled Pinned Locked Moved C#
csharpquestion
18 Posts 7 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A AndieDu

    Hi All, say i have these inputs strings: string input_1 = " ABCD "; string input_2 = " A BC D "; string input_3 " A B C D "; I want to convert these strings to the follows: input_1 = " ABCD"; input_2 = " A BC D"; input_3 " A B C D"; basically remove all the blanks after the last letter, i know the string.TrimEnd() function in .Net can be used to achieve my requirement. Is there another way (without using string.TrimEnd() function) to achieve the same as String.TrimEnd() does? Many thanks

    T Offline
    T Offline
    theOzLizard
    wrote on last edited by
    #8

    you can do input_3 = inputstr.Substring(0, inputstr.LastIndexOf(" ")); will give you the result you want.

    theLizard

    OriginalGriffO 1 Reply Last reply
    0
    • OriginalGriffO OriginalGriff

      The simplest solution is to use a regular expression:

      Regex.Replace(inputString, @"[\s]*$", "")

      All those who believe in psycho kinesis, raise my hand.

      A Offline
      A Offline
      AndieDu
      wrote on last edited by
      #9

      this is the most efficient and accruate way, thanks very much.

      1 Reply Last reply
      0
      • T theOzLizard

        you can do input_3 = inputstr.Substring(0, inputstr.LastIndexOf(" ")); will give you the result you want.

        theLizard

        OriginalGriffO Offline
        OriginalGriffO Offline
        OriginalGriff
        wrote on last edited by
        #10

        Unfortunately, that turns out not to be the case. It will remove all data from the last occurance of a space to the end: "A<space>B<space>C<space><space>" becomes "A<space>B<space>C<space>" "A<space>B<space>C" becomes "A<space>B"

        All those who believe in psycho kinesis, raise my hand.

        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
        "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

        T 1 Reply Last reply
        0
        • A AndieDu

          Hi All, say i have these inputs strings: string input_1 = " ABCD "; string input_2 = " A BC D "; string input_3 " A B C D "; I want to convert these strings to the follows: input_1 = " ABCD"; input_2 = " A BC D"; input_3 " A B C D"; basically remove all the blanks after the last letter, i know the string.TrimEnd() function in .Net can be used to achieve my requirement. Is there another way (without using string.TrimEnd() function) to achieve the same as String.TrimEnd() does? Many thanks

          D Offline
          D Offline
          dan sh
          wrote on last edited by
          #11

          There are plenty of ways of doing this. Here is one: You can make use of LastIndexOf and Replace method along with the Length property. Check the last index of the space and if it is equal to the length of the string, replace it with nothing. You can also use the Remove method instead of Replace.

          50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!

          OriginalGriffO 1 Reply Last reply
          0
          • D dan sh

            There are plenty of ways of doing this. Here is one: You can make use of LastIndexOf and Replace method along with the Length property. Check the last index of the space and if it is equal to the length of the string, replace it with nothing. You can also use the Remove method instead of Replace.

            50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!

            OriginalGriffO Offline
            OriginalGriffO Offline
            OriginalGriff
            wrote on last edited by
            #12

            Doesn't achieve what he asked for: it only removes the last space, not all trailing spaces.

            All those who believe in psycho kinesis, raise my hand.

            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
            "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

            D 1 Reply Last reply
            0
            • OriginalGriffO OriginalGriff

              Doesn't achieve what he asked for: it only removes the last space, not all trailing spaces.

              All those who believe in psycho kinesis, raise my hand.

              D Offline
              D Offline
              dan sh
              wrote on last edited by
              #13

              Do that recursively. :) /This approach can win the worst approach award. //No, I can beat this one too.

              50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!

              OriginalGriffO 1 Reply Last reply
              0
              • D dan sh

                Do that recursively. :) /This approach can win the worst approach award. //No, I can beat this one too.

                50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!

                OriginalGriffO Offline
                OriginalGriffO Offline
                OriginalGriff
                wrote on last edited by
                #14

                Mmmm! I love the smell of sledgehammer in the morning! :laugh:

                All those who believe in psycho kinesis, raise my hand.

                "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                D 1 Reply Last reply
                0
                • OriginalGriffO OriginalGriff

                  Mmmm! I love the smell of sledgehammer in the morning! :laugh:

                  All those who believe in psycho kinesis, raise my hand.

                  D Offline
                  D Offline
                  dan sh
                  wrote on last edited by
                  #15

                  Just the smell. Blow - never. :)

                  50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!

                  1 Reply Last reply
                  0
                  • OriginalGriffO OriginalGriff

                    Unfortunately, that turns out not to be the case. It will remove all data from the last occurance of a space to the end: "A<space>B<space>C<space><space>" becomes "A<space>B<space>C<space>" "A<space>B<space>C" becomes "A<space>B"

                    All those who believe in psycho kinesis, raise my hand.

                    T Offline
                    T Offline
                    theOzLizard
                    wrote on last edited by
                    #16

                    Oops, less haste, If I could not use trim() it should have been something like if(string.LastIndexOf(" ") = string.Length) { string = string.Substring(0, string.Length-1); } But the answer from OriginalGriff seems to be the one, I have also learned.

                    theLizard

                    P 1 Reply Last reply
                    0
                    • T theOzLizard

                      Oops, less haste, If I could not use trim() it should have been something like if(string.LastIndexOf(" ") = string.Length) { string = string.Substring(0, string.Length-1); } But the answer from OriginalGriff seems to be the one, I have also learned.

                      theLizard

                      P Offline
                      P Offline
                      PIEBALDconsult
                      wrote on last edited by
                      #17

                      Make it a while loop and use a comparison operator rather than assignment. :-D

                      T 1 Reply Last reply
                      0
                      • P PIEBALDconsult

                        Make it a while loop and use a comparison operator rather than assignment. :-D

                        T Offline
                        T Offline
                        theOzLizard
                        wrote on last edited by
                        #18

                        oops (again, bugger) :( left out one of these = and yes a while would be appropriate if more than one at end of string. I'm having an off day

                        theLizard

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups