Bird
Raised Fist0
C Sharp (C#)programming~10 mins

String searching and extraction in C Sharp (C#) - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - String searching and extraction
Start with input string
Search for substring or pattern
Is substring found?
NoReturn -1 or empty
Yes
Extract substring or index
Use extracted data
End
The program starts with a string, searches for a substring or pattern, checks if found, then extracts or returns the index, and finally uses the extracted data.
Execution Sample
C Sharp (C#)
string text = "Hello, world!";
int index = text.IndexOf("world");
string extracted = index >= 0 ? text.Substring(index, 5) : "";
Console.WriteLine(extracted);
This code searches for "world" in the text, extracts it if found, and prints it.
Execution Table
StepActionEvaluationResult
1Set text to "Hello, world!"N/Atext = "Hello, world!"
2Search for "world" using IndexOftext.IndexOf("world")index = 7
3Check if index >= 07 >= 0True
4Extract substring from index 7 length 5text.Substring(7, 5)extracted = "world"
5Print extracted substringConsole.WriteLine(extracted)Output: world
💡 Extraction and printing done; program ends.
Variable Tracker
VariableStartAfter Step 2After Step 4Final
text"Hello, world!""Hello, world!""Hello, world!""Hello, world!"
indexundefined777
extractedundefinedundefined"world""world"
Key Moments - 2 Insights
Why do we check if index >= 0 before extracting?
Because IndexOf returns -1 if the substring is not found. Checking index >= 0 (see step 3) ensures we only extract when the substring exists.
What happens if the substring is not found?
If not found, index is -1, so the condition in step 3 is false, and extraction is skipped, resulting in an empty string.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of 'index' after step 2?
A7
B-1
C0
D5
💡 Hint
Check the 'Result' column in step 2 of the execution_table.
At which step does the program decide if it will extract the substring?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the 'Evaluation' column in step 3 where the condition index >= 0 is checked.
If the substring "world" was not in the text, what would 'extracted' be after step 4?
A"world"
B"Hello"
C"" (empty string)
Dnull
💡 Hint
Refer to the key moment about what happens if substring is not found and the condition in step 3.
Concept Snapshot
String searching uses methods like IndexOf to find substring positions.
If found (index >= 0), use Substring to extract part of the string.
If not found, handle by returning empty or special value.
Always check index before extracting to avoid errors.
Use extracted string as needed (e.g., print or store).
Full Transcript
This example shows how to search for a substring "world" inside a string "Hello, world!" using C# methods. First, the program sets the text variable. Then it uses IndexOf to find the starting position of "world". If the substring is found (index is 7), it extracts the substring starting at that index with length 5. Finally, it prints the extracted substring. If the substring was not found, the program would skip extraction and print an empty string. This step-by-step process helps avoid errors and correctly extracts parts of strings.

Practice

(1/5)
1. What does the IndexOf method return if the searched substring is not found in a string?
easy
A. 0
B. -1
C. null
D. An exception is thrown

Solution

  1. Step 1: Understand IndexOf behavior

    The IndexOf method returns the zero-based index of the first occurrence of the substring if found.
  2. Step 2: Check return value when substring is missing

    If the substring is not found, IndexOf returns -1 to indicate absence.
  3. Final Answer:

    -1 -> Option B
  4. Quick Check:

    IndexOf returns -1 if substring missing [OK]
Hint: Remember: Not found means -1 from IndexOf [OK]
Common Mistakes:
  • Thinking it returns 0 when not found
  • Expecting null instead of -1
  • Assuming it throws an error if missing
2. Which of the following is the correct syntax to extract a substring starting at index 3 with length 5 from a string text?
easy
A. text.Substring(3, 5);
B. text.SubString(5, 3);
C. text.Substring(5);
D. text.Substr(3, 5);

Solution

  1. Step 1: Recall Substring method signature

    Substring takes start index first, then length: Substring(int startIndex, int length).
  2. Step 2: Match correct syntax

    text.Substring(3, 5); uses correct method name and parameter order: start at 3, length 5.
  3. Final Answer:

    text.Substring(3, 5); -> Option A
  4. Quick Check:

    Correct method and parameters = text.Substring(3, 5); [OK]
Hint: Remember: Substring(startIndex, length) with capital S [OK]
Common Mistakes:
  • Using wrong method name like Substr or SubString
  • Swapping start index and length parameters
  • Using only one parameter when two are needed
3. What is the output of this code?
string s = "hello world";
int pos = s.IndexOf("world");
string part = s.Substring(pos, 5);
Console.WriteLine(part);
medium
A. hello
B. worldd
C. world
D. error

Solution

  1. Step 1: Find index of "world" in string

    "world" starts at index 6 in "hello world".
  2. Step 2: Extract substring from index 6 with length 5

    Substring(6, 5) extracts "world" exactly.
  3. Final Answer:

    world -> Option C
  4. Quick Check:

    IndexOf + Substring extracts "world" [OK]
Hint: IndexOf finds start, Substring extracts exact length [OK]
Common Mistakes:
  • Using wrong start index for Substring
  • Confusing length parameter
  • Expecting output to include extra characters
4. The following code throws an exception. What is the main cause?
string s = "example";
int pos = s.IndexOf("z");
string part = s.Substring(pos, 3);
Console.WriteLine(part);
medium
A. Substring called with negative start index
B. IndexOf throws exception if not found
C. Length parameter is too large
D. Console.WriteLine cannot print substrings

Solution

  1. Step 1: Check IndexOf result for "z"

    "z" is not in "example", so IndexOf returns -1.
  2. Step 2: Substring called with start index -1 causes exception

    Substring cannot start at negative index, so it throws ArgumentOutOfRangeException.
  3. Final Answer:

    Substring called with negative start index -> Option A
  4. Quick Check:

    Negative index in Substring causes error [OK]
Hint: Check if IndexOf is -1 before using Substring [OK]
Common Mistakes:
  • Assuming IndexOf throws exception when not found
  • Ignoring negative index causes Substring error
  • Blaming Console.WriteLine for error
5. You want to extract the first word from a sentence stored in string sentence. Which code correctly extracts the first word assuming words are separated by spaces?
hard
A. string firstWord = sentence.Substring(sentence.IndexOf(' ') + 1);
B. string firstWord = sentence.Substring(0, sentence.IndexOf(' '));
C. int spacePos = sentence.IndexOf(' '); string firstWord = sentence.Substring(spacePos);
D. int spacePos = sentence.IndexOf(' '); string firstWord = spacePos == -1 ? sentence : sentence.Substring(0, spacePos);

Solution

  1. Step 1: Find position of first space

    Use IndexOf(' ') to find where the first space is.
  2. Step 2: Extract substring from start to space or whole string if no space

    If no space found (-1), the whole sentence is one word; else extract from 0 to space position.
  3. Final Answer:

    int spacePos = sentence.IndexOf(' '); string firstWord = spacePos == -1 ? sentence : sentence.Substring(0, spacePos); -> Option D
  4. Quick Check:

    Check for space, then substring from start [OK]
Hint: Check if space exists before substring to avoid errors [OK]
Common Mistakes:
  • Not handling case when no space exists
  • Extracting substring after space instead of before
  • Using wrong substring parameters