Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

181
Vistas
How do I output every other word in a string?

I am new to C# and only know the basics. I'm looking for a code example on how I would get every other word from a string variable. For example if the variable was

String x = "Help me, coding is difficult"; 

I would want to return single string "Help coding difficult". It needs to be a function that takes one string and return filtered version of it.

Someone suggested duplicates that I mostly already seen during my research:

  • How to split text into words? shows very complicated logic that takes into account punctuation for example. I think I'm fine just to rely on spaces, but if you have better suggestion with an explanation - would be nice.
  • Select every second element from array using lambda - seems promising, but sample shows how to work with integer array. I have string (or maybe string array if one can adapt string splitting code to provide one).
  • C# Print list of string array that also sounds promising but it shows how to print the result, not how to return it as value from a function.
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

string s = "You win some. You lose some.";

string[] subs = s.Split(' ');

for(int i=0 ; i < subs.length ; i+=2)
{
    Console.WriteLine($"Substring: {sub[i]}");
}
over 4 years ago · Santiago Trujillo Denunciar

0

You need to define first what are word delimiters, just a space, a comma, period or semicolon or what else? Then you can use String.Split.

char[] wordDelimiter = new[] { ' ','\t', ',', '.', '!', '?', ';', ':', '/', '\\', '[', ']', '(', ')', '<', '>', '@', '"', '\'' };
String x = "Help me, coding is difficult"; 
string[] words = x.Split(wordDelimiter, StringSplitOptions.RemoveEmptyEntries);

Now you have an array with all words. But you want every other, you could fill them into a List<string> and use a for-loop that skips every other:

var everyOtherWord = new List<string>();
for(int i = 0; i < words.Length; i += 2)
{
    everyOtherWord.Add(words[i]);
}

I would want to return "Help coding difficult"

So you really want to have a string as result that contains these words separated by space? Then use String.Join (somehow the counterpart method of String.Split):

string result = string.Join(" ", everyOtherWord);
over 4 years ago · Santiago Trujillo Denunciar

0

Assuming that you count a word as "every character between spaces, or the start/end of the string", and you're not trying to remove any letters.

var input = "Help me, coding is difficult";
var everyOther = input
    .Split(' ')
    .Where((x, i) => i % 2 == 0);
Console.WriteLine(string.Join(" ", everyOther));

The code for the Where was taken from this post.

The idea is to use the overload of Where which gives you the index value, and see if that index value is even, if so, include it in the results.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda