Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Is there a way to count the number of characters from a certain word in a given string in c#?

I’m trying to find a way to count the number of chars in a certain word starting with a certain char from a given string in c# using only system. So for example for the following string "the weather outside is beautiful". If I want to count the number of chars for the word "outside" using as a rule just the first letter (in this case will be "o"), can I count somehow the number of chars preceding the o? (in this case will be 6). I was thinking that it should be something like:
If word starts with "o" than count the following chars and stop counting when we find space, return number. I tried finding something similar but unfortunately I wasn’t successful. As an addition, there will be only one word starting with the letter o. (or another letter which will be used as a finding rule) I hope the question is clear enough and thank you in advance!

>Solution :

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

The general approach would be to

  • Split() string by spaces: you get a list of words
  • iterate list and check first letter of each word
  • if word starts with ‘o’: get the lenght of word

you can do this either using String.Split() – leveraging System.Linq, or even by using simple loops.

Using loops:

public class Program
{
    public static void Main()
    {
        var text = "the weather outside is beautiful";
        
        var word = "";
        foreach( var l in text)
        {
            if (word == "" && l == 'o')
            {
                word += l;
            } 
            else if (word != ""  && l == ' ')
            {
                System.Console.WriteLine(string.Format("{0} : {1}",
                                         word, word.Length));
                word = "";
            }
            else if (word != "")
            {
                word += l;
            }
        }
    }
}

This (and the others) output:

outside : 7

Using String.Split():

public class Program
{
    public static void Main()
    {
        var text = "the weather outside is beautiful";

        var words = text.Split(' ');
        
        foreach( var w in words)
        {
            if (w.StartsWith("o"))
                System.Console.WriteLine(string.Format("{0} : {1}",
                                         w, w.Length));
        }
    }
}

Using Linq:

using System;
using System.Linq;

public class Program
{
    public static void Main()
    {
        var text = "the weather outside is beautiful";
        
        var splitted = text
            .Split(' ')
            .Where(w => w.StartsWith("o", StringComparison.OrdinalIgnoreCase));
        
        foreach(var w in splitted)
            System.Console.WriteLine(string.Format("{0} : {1}", w, w.Length));      
    }
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading