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. String operation

String operation

Scheduled Pinned Locked Moved C#
question
12 Posts 8 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.
  • S Offline
    S Offline
    SRKSHOME
    wrote on last edited by
    #1

    Hi, I have following string. And I have to extract "931.3392ms" from the string. This line of string is not delimited by any character. How do I extract it? 8 (26/04/2010 05:58.03) Execute(WQADataRequest, WQA_LOAD_TYPE.Deep) 931.3392ms (1.7/11.4 KB)

    L R P R 4 Replies Last reply
    0
    • S SRKSHOME

      Hi, I have following string. And I have to extract "931.3392ms" from the string. This line of string is not delimited by any character. How do I extract it? 8 (26/04/2010 05:58.03) Execute(WQADataRequest, WQA_LOAD_TYPE.Deep) 931.3392ms (1.7/11.4 KB)

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      Are they delimited by spaces? Are there always the same number of elements in your string? If so, you could split[^] it on the space.

      I are Troll :suss:

      S 1 Reply Last reply
      0
      • L Lost User

        Are they delimited by spaces? Are there always the same number of elements in your string? If so, you could split[^] it on the space.

        I are Troll :suss:

        S Offline
        S Offline
        SRKSHOME
        wrote on last edited by
        #3

        This line of string is not delimited by spaces.Yes,this particular line always contains same number of elements. Is there any efficient method other than split?

        L H 2 Replies Last reply
        0
        • S SRKSHOME

          Hi, I have following string. And I have to extract "931.3392ms" from the string. This line of string is not delimited by any character. How do I extract it? 8 (26/04/2010 05:58.03) Execute(WQADataRequest, WQA_LOAD_TYPE.Deep) 931.3392ms (1.7/11.4 KB)

          R Offline
          R Offline
          Rajesh Anuhya
          wrote on last edited by
          #4

          Try This

          string str = "8 (26/04/2010 05:58.03) Execute(WQADataRequest, WQA\_LOAD\_TYPE.Deep) 931.3392ms (1.7/11.4 KB)";
          

          MessageBox.Show(
          (((str.Substring(str.IndexOf(")") + 1)).
          Substring((str.Substring(str.IndexOf(")") + 1)).IndexOf(")") + 1)).
          Substring(0, ((str.Substring(str.IndexOf(")") + 1)).
          Substring((str.Substring(str.IndexOf(")") + 1)).IndexOf(")") + 1)).IndexOf("(")))
          );

          Rajesh B --> A Poor Workman Blames His Tools <--

          S M L 3 Replies Last reply
          0
          • R Rajesh Anuhya

            Try This

            string str = "8 (26/04/2010 05:58.03) Execute(WQADataRequest, WQA\_LOAD\_TYPE.Deep) 931.3392ms (1.7/11.4 KB)";
            

            MessageBox.Show(
            (((str.Substring(str.IndexOf(")") + 1)).
            Substring((str.Substring(str.IndexOf(")") + 1)).IndexOf(")") + 1)).
            Substring(0, ((str.Substring(str.IndexOf(")") + 1)).
            Substring((str.Substring(str.IndexOf(")") + 1)).IndexOf(")") + 1)).IndexOf("(")))
            );

            Rajesh B --> A Poor Workman Blames His Tools <--

            S Offline
            S Offline
            SRKSHOME
            wrote on last edited by
            #5

            Thanks...This works efficiently.

            1 Reply Last reply
            0
            • S SRKSHOME

              This line of string is not delimited by spaces.Yes,this particular line always contains same number of elements. Is there any efficient method other than split?

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #6

              SRKSHOME wrote:

              This line of string is not delimited by spaces.

              You already mentioned that, just checking since there were spaces in the example-string.

              SRKSHOME wrote:

              Yes,this particular line always contains same number of elements.

              Split on some other character? Like the "("?

              SRKSHOME wrote:

              Yes,this particular line always contains same number of elements.

              But the elements do not always have the same length?

              SRKSHOME wrote:

              Is there any efficient method other than split?

              Yup, using regular expressions[^].

              I are Troll :suss:

              1 Reply Last reply
              0
              • R Rajesh Anuhya

                Try This

                string str = "8 (26/04/2010 05:58.03) Execute(WQADataRequest, WQA\_LOAD\_TYPE.Deep) 931.3392ms (1.7/11.4 KB)";
                

                MessageBox.Show(
                (((str.Substring(str.IndexOf(")") + 1)).
                Substring((str.Substring(str.IndexOf(")") + 1)).IndexOf(")") + 1)).
                Substring(0, ((str.Substring(str.IndexOf(")") + 1)).
                Substring((str.Substring(str.IndexOf(")") + 1)).IndexOf(")") + 1)).IndexOf("(")))
                );

                Rajesh B --> A Poor Workman Blames His Tools <--

                M Offline
                M Offline
                Md Marufuzzaman
                wrote on last edited by
                #7

                Gr8... very smart. :)

                Thanks Md. Marufuzzaman


                I will not say I have failed 1000 times; I will say that I have discovered 1000 ways that can cause failure – Thomas Edison.

                P 1 Reply Last reply
                0
                • R Rajesh Anuhya

                  Try This

                  string str = "8 (26/04/2010 05:58.03) Execute(WQADataRequest, WQA\_LOAD\_TYPE.Deep) 931.3392ms (1.7/11.4 KB)";
                  

                  MessageBox.Show(
                  (((str.Substring(str.IndexOf(")") + 1)).
                  Substring((str.Substring(str.IndexOf(")") + 1)).IndexOf(")") + 1)).
                  Substring(0, ((str.Substring(str.IndexOf(")") + 1)).
                  Substring((str.Substring(str.IndexOf(")") + 1)).IndexOf(")") + 1)).IndexOf("(")))
                  );

                  Rajesh B --> A Poor Workman Blames His Tools <--

                  L Offline
                  L Offline
                  Luc Pattyn
                  wrote on last edited by
                  #8

                  I can't disagree more, that is horrible code. It is unreadable, it has 7 calls to IndexOf where you only need 3, and 7 to SubString where you also need just 3.

                  string a=str.Substring(str.IndexOf(")") + 1);   // skip everything before first ")"
                  string b=a.Substring(a.IndexOf(")") + 1);       // skip everything before second ")"
                  string c=b.Substring(0, b.IndexOf("("));        // drop everything after next "("
                  

                  The Regex alternatives are pretty simple too, here is one; the result excludes the surrounding spaces:

                  string d=Regex.Match(str, @"\\) (\[0-9\\.\]\*ms) \\(").Groups\[1\].Value;
                  

                  :)

                  Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]


                  Prolific encyclopedia fixture proof-reader browser patron addict?
                  We all depend on the beast below.


                  1 Reply Last reply
                  0
                  • S SRKSHOME

                    Hi, I have following string. And I have to extract "931.3392ms" from the string. This line of string is not delimited by any character. How do I extract it? 8 (26/04/2010 05:58.03) Execute(WQADataRequest, WQA_LOAD_TYPE.Deep) 931.3392ms (1.7/11.4 KB)

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

                    Use a Regular Expression, check out Expresso[^] or my own RegexTester[^].

                    1 Reply Last reply
                    0
                    • M Md Marufuzzaman

                      Gr8... very smart. :)

                      Thanks Md. Marufuzzaman


                      I will not say I have failed 1000 times; I will say that I have discovered 1000 ways that can cause failure – Thomas Edison.

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

                      +5 for sarcasm.

                      1 Reply Last reply
                      0
                      • S SRKSHOME

                        This line of string is not delimited by spaces.Yes,this particular line always contains same number of elements. Is there any efficient method other than split?

                        H Offline
                        H Offline
                        hossein narimani rad 0
                        wrote on last edited by
                        #11

                        if the string is always fix size you can simply try the Substring method of the String class.

                        1 Reply Last reply
                        0
                        • S SRKSHOME

                          Hi, I have following string. And I have to extract "931.3392ms" from the string. This line of string is not delimited by any character. How do I extract it? 8 (26/04/2010 05:58.03) Execute(WQADataRequest, WQA_LOAD_TYPE.Deep) 931.3392ms (1.7/11.4 KB)

                          R Offline
                          R Offline
                          Ravi Bhavnani
                          wrote on last edited by
                          #12

                          You may want to consider using my StringParser[^] class.

                          string mSec = string.Empty;
                          StringParser sp = new StringParser (s);
                          if (sp.skipToEndOf (") ") && sp.skipToEndOf (") ")) {
                          sp.extractTo ("(", out mSec);
                          }

                          /ravi

                          My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

                          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