Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Need help understanding 'Split'.  C#

Posted on 2016-07-15
4
Medium Priority
?
58 Views
Last Modified: 2016-07-15
I need help to make sure I am understanding the below code correctly.

FYI: textBox1 is an input box.  The user can search for anything they want.

textBox1.Text.Split(';')[0]

Open in new window


Is the 'Split' looking for ';' as a separator that the user inputted to search for multiple items in the textBox1?  If so, then does the [0] mean only the first item listed is being searched for?

Here is more of the code:

for (int i = 0; i < textBox1.Text.Split(';')[0].Length; i++)
                    {
                        if (textBox1.Text.Split(';')[0][i] == '.')
                        {
                            cnt++;
                        }
                    }

Open in new window


Can someone let me know if I am reading this code correctly?
0
Comment
Question by:huerita37
  • 2
4 Comments
 
LVL 70

Accepted Solution

by:
Éric Moreau earned 2000 total points
ID: 41713232
the [0] is the indexer. You probably mean:

for (int i = 0; i < textBox1.Text.Split(';').Length; i++)
                    {
                        if (textBox1.Text.Split(';')[i] == '.')
                        {
                            cnt++;
                        }
                    }

Open in new window

0
 

Author Comment

by:huerita37
ID: 41713239
I didn't write the code and when I was trying to read it I was getting confused.
0
 

Author Closing Comment

by:huerita37
ID: 41713251
The [0] is an indexer.  Not sure why but the original programmer allowed the user to input a search for multiple items but never searched for anything after the first ';'.
0
 
LVL 14

Expert Comment

by:Dustin Saunders
ID: 41713265
If you're ever curious, take your code and write outputs to see what it does.  Like this:

string test = "Hey; what is the problem?  Did you know; One period.  Two periods.  Not three!";
            int cnt = 0;
            Console.WriteLine(test.Split(';').Length.ToString());
            for (int i = 0; i < test.Split(';').Length; i++)
            {
                
                if (test.Split(';')[0][i] == '.')
                {
                    cnt++;
                }
                Console.WriteLine(test.Split(';')[0][i].ToString());
            }
            Console.WriteLine(test.Split(';')[0].ToString());
            Console.WriteLine(cnt.ToString());
            Console.Read();

Open in new window


You can see what exactly the code is doing.  In this case, yes they never iterate paste the first block of ';'.

You need to use a nested for(i++) in order to iterate through the first item and the second set.

Like this:

string test = "Hey; what is the problem?  Did you know; One period.  Two periods.  Not three!";
            int cnt = 0;
            Console.WriteLine(test.Split(';').Length.ToString());
            for (int i = 0; i < test.Split(';').Length; i++)
            {
                for (int j = 0; j < test.Split(';')[i].Length; j++)
                {
                    if (test.Split(';')[i][j] == '.')
                    {
                        cnt++;
                    }
                    Console.WriteLine(test.Split(';')[i][j].ToString());
                }
                
            }
            
            Console.WriteLine(cnt.ToString() + " periods found.");
            Console.Read();

Open in new window

1

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes a simple method to resize a control at runtime.  It includes ready-to-use source code and a complete sample demonstration application.  We'll also talk about C# Extension Methods. Introduction In one of my applications…
Summary: Persistence is the capability of an application to store the state of objects and recover it when necessary. This article compares the two common types of serialization in aspects of data access, readability, and runtime cost. A ready-to…
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Despite its rising prevalence in the business world, "the cloud" is still misunderstood. Some companies still believe common misconceptions about lack of security in cloud solutions and many misuses of cloud storage options still occur every day. …

963 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question