Mastering Nested Loops and String Manipulation in C#

Introduction

Hello and welcome to today's C# lesson! We are going to embark on an intriguing challenge that will test our abilities in string manipulation using a concept known as nested loops. Prepare yourself for an interesting journey as we explore how to extract odd-indexed characters from each word in a sentence, but only if the word has an even number of characters. Let's get started!

Task Statement

Here is a detailed look at our task: We will work with a string that represents a sentence with words separated by spaces. Your objective is to create a C# function that identifies the odd-indexed characters of words that have an even number of characters. Then, combine these characters into a single string, maintaining the order in which they appear in the sentence.

Let's consider an example: "CSharp is a high-level programming language." Here, the word CSharp has 6 characters (an even number), so we will select the characters at odd indexes — S, a, p. Similarly, select s from is, and i, h, l, v, and l from high-level. The words a, programming, and language. have odd lengths, so they are skipped.

If our function works correctly, it should return "Sapsihlvl." Observe how much information can be extracted from a simple sentence with this process!

Solution Building: Step 1

We start our solution by splitting the sentence into words. In C#, we use the String.Split method to achieve this. The Split method divides the sentence into words at each space, providing us with an array of words.

using System;

public class Solution
{
    public static string SolutionMethod(string sentence)
    {
        string[] words = sentence.Split(' ');
        // we will proceed progressively
    }
}

Solution Building: Step 2

Next, we delve into nested loops: an outer loop iterating over each word and an inner loop checking each character within those words. Firstly, we'll use an if condition to verify if a word has an even length. We find this by using the modulus operator % with 2. If the result is zero, our word has an even length!

using System;

public class Solution
{
    public static string SolutionMethod(string sentence)
    {
        string[] words = sentence.Split(' ');
        foreach (string word in words)
        {
            if (word.Length % 2 == 0) // confirms whether the length of the word is even
            {
                // we are building up our solution progressively
            }
        }
    }
}
Sign up

Join the 1M+ learners on CodeSignal

Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal