How to insert a string every n words?












2














I need help with text. I got a code which for example finds if the line has even number of words, then it finds every 2nd word in a text file. The problem is i don't know how to append a string to that every 2nd word and print it out.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.IO;

namespace sd
{
class Program
{
const string CFd = "..\..\A.txt";
const string CFr = "..\..\Rezults.txt";

static void Main(string args)
{


Apdoroti(CFd, CFr);
Console.WriteLine();

}
static void Apdoroti(string fd, string fr)
{
string lines = File.ReadAllLines(fd, Encoding.GetEncoding(1257));
using (var far = File.CreateText(fr))
{
StringBuilder news = new StringBuilder();
VD(CFd,news);
far.WriteLine(news);

}
}


static void VD(string fv, StringBuilder news)
{
using (StreamReader reader = new StreamReader(fv,
Encoding.GetEncoding(1257)))
{
string lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
int nrl;
int prad = 1;
foreach (string line in lines)
{
nrl = line.Trim().Split(' ').Count();
string parts = line.Split(' ');
if (nrl % 2 == 0)
{
Console.WriteLine(nrl);
for (int i = 0; i < nrl; i += 2)
{
int ind = line.IndexOf(parts[i]);
nauja.Append(parts[i]);
Console.WriteLine(" {0} ", news);
}

}
}
}
}

}


}



For example if i got a text like:
"Monster in the Jungle Once upon a time a wise lion lived in jungle.
He was always respected for his intelligence and kindness."



Then it should print out:
"Monster in abb the Jungle abb Once upon abb a time abb a wise abb lion lived abb in jungle.
He was always respected for his intelligence and kindness."










share|improve this question
























  • It is so hard to follow your existing code. What does VD() mean? What does fv mean? You really need to work on your naming
    – maccettura
    Nov 19 '18 at 18:41










  • ill give my full code
    – Scr1pt25
    Nov 19 '18 at 18:46










  • I think you mean even number of words.
    – paparazzo
    Nov 19 '18 at 19:07
















2














I need help with text. I got a code which for example finds if the line has even number of words, then it finds every 2nd word in a text file. The problem is i don't know how to append a string to that every 2nd word and print it out.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.IO;

namespace sd
{
class Program
{
const string CFd = "..\..\A.txt";
const string CFr = "..\..\Rezults.txt";

static void Main(string args)
{


Apdoroti(CFd, CFr);
Console.WriteLine();

}
static void Apdoroti(string fd, string fr)
{
string lines = File.ReadAllLines(fd, Encoding.GetEncoding(1257));
using (var far = File.CreateText(fr))
{
StringBuilder news = new StringBuilder();
VD(CFd,news);
far.WriteLine(news);

}
}


static void VD(string fv, StringBuilder news)
{
using (StreamReader reader = new StreamReader(fv,
Encoding.GetEncoding(1257)))
{
string lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
int nrl;
int prad = 1;
foreach (string line in lines)
{
nrl = line.Trim().Split(' ').Count();
string parts = line.Split(' ');
if (nrl % 2 == 0)
{
Console.WriteLine(nrl);
for (int i = 0; i < nrl; i += 2)
{
int ind = line.IndexOf(parts[i]);
nauja.Append(parts[i]);
Console.WriteLine(" {0} ", news);
}

}
}
}
}

}


}



For example if i got a text like:
"Monster in the Jungle Once upon a time a wise lion lived in jungle.
He was always respected for his intelligence and kindness."



Then it should print out:
"Monster in abb the Jungle abb Once upon abb a time abb a wise abb lion lived abb in jungle.
He was always respected for his intelligence and kindness."










share|improve this question
























  • It is so hard to follow your existing code. What does VD() mean? What does fv mean? You really need to work on your naming
    – maccettura
    Nov 19 '18 at 18:41










  • ill give my full code
    – Scr1pt25
    Nov 19 '18 at 18:46










  • I think you mean even number of words.
    – paparazzo
    Nov 19 '18 at 19:07














2












2








2


1





I need help with text. I got a code which for example finds if the line has even number of words, then it finds every 2nd word in a text file. The problem is i don't know how to append a string to that every 2nd word and print it out.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.IO;

namespace sd
{
class Program
{
const string CFd = "..\..\A.txt";
const string CFr = "..\..\Rezults.txt";

static void Main(string args)
{


Apdoroti(CFd, CFr);
Console.WriteLine();

}
static void Apdoroti(string fd, string fr)
{
string lines = File.ReadAllLines(fd, Encoding.GetEncoding(1257));
using (var far = File.CreateText(fr))
{
StringBuilder news = new StringBuilder();
VD(CFd,news);
far.WriteLine(news);

}
}


static void VD(string fv, StringBuilder news)
{
using (StreamReader reader = new StreamReader(fv,
Encoding.GetEncoding(1257)))
{
string lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
int nrl;
int prad = 1;
foreach (string line in lines)
{
nrl = line.Trim().Split(' ').Count();
string parts = line.Split(' ');
if (nrl % 2 == 0)
{
Console.WriteLine(nrl);
for (int i = 0; i < nrl; i += 2)
{
int ind = line.IndexOf(parts[i]);
nauja.Append(parts[i]);
Console.WriteLine(" {0} ", news);
}

}
}
}
}

}


}



For example if i got a text like:
"Monster in the Jungle Once upon a time a wise lion lived in jungle.
He was always respected for his intelligence and kindness."



Then it should print out:
"Monster in abb the Jungle abb Once upon abb a time abb a wise abb lion lived abb in jungle.
He was always respected for his intelligence and kindness."










share|improve this question















I need help with text. I got a code which for example finds if the line has even number of words, then it finds every 2nd word in a text file. The problem is i don't know how to append a string to that every 2nd word and print it out.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.IO;

namespace sd
{
class Program
{
const string CFd = "..\..\A.txt";
const string CFr = "..\..\Rezults.txt";

static void Main(string args)
{


Apdoroti(CFd, CFr);
Console.WriteLine();

}
static void Apdoroti(string fd, string fr)
{
string lines = File.ReadAllLines(fd, Encoding.GetEncoding(1257));
using (var far = File.CreateText(fr))
{
StringBuilder news = new StringBuilder();
VD(CFd,news);
far.WriteLine(news);

}
}


static void VD(string fv, StringBuilder news)
{
using (StreamReader reader = new StreamReader(fv,
Encoding.GetEncoding(1257)))
{
string lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
int nrl;
int prad = 1;
foreach (string line in lines)
{
nrl = line.Trim().Split(' ').Count();
string parts = line.Split(' ');
if (nrl % 2 == 0)
{
Console.WriteLine(nrl);
for (int i = 0; i < nrl; i += 2)
{
int ind = line.IndexOf(parts[i]);
nauja.Append(parts[i]);
Console.WriteLine(" {0} ", news);
}

}
}
}
}

}


}



For example if i got a text like:
"Monster in the Jungle Once upon a time a wise lion lived in jungle.
He was always respected for his intelligence and kindness."



Then it should print out:
"Monster in abb the Jungle abb Once upon abb a time abb a wise abb lion lived abb in jungle.
He was always respected for his intelligence and kindness."







c#






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 19 '18 at 19:17







Scr1pt25

















asked Nov 19 '18 at 18:34









Scr1pt25Scr1pt25

304




304












  • It is so hard to follow your existing code. What does VD() mean? What does fv mean? You really need to work on your naming
    – maccettura
    Nov 19 '18 at 18:41










  • ill give my full code
    – Scr1pt25
    Nov 19 '18 at 18:46










  • I think you mean even number of words.
    – paparazzo
    Nov 19 '18 at 19:07


















  • It is so hard to follow your existing code. What does VD() mean? What does fv mean? You really need to work on your naming
    – maccettura
    Nov 19 '18 at 18:41










  • ill give my full code
    – Scr1pt25
    Nov 19 '18 at 18:46










  • I think you mean even number of words.
    – paparazzo
    Nov 19 '18 at 19:07
















It is so hard to follow your existing code. What does VD() mean? What does fv mean? You really need to work on your naming
– maccettura
Nov 19 '18 at 18:41




It is so hard to follow your existing code. What does VD() mean? What does fv mean? You really need to work on your naming
– maccettura
Nov 19 '18 at 18:41












ill give my full code
– Scr1pt25
Nov 19 '18 at 18:46




ill give my full code
– Scr1pt25
Nov 19 '18 at 18:46












I think you mean even number of words.
– paparazzo
Nov 19 '18 at 19:07




I think you mean even number of words.
– paparazzo
Nov 19 '18 at 19:07












2 Answers
2






active

oldest

votes


















1














You can do it with a regex replace, like this regex:



@"w+sw+s"


It maches a Word, a Space, a Word and a Space.



Now replace it with:



"$&abb "


How to use:



using System.Text.RegularExpressions;

string text = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
Regex regex = new Regex(@"w+sw+s");
string output = regex.Replace(text, "$&abb ");


Now you will get the desired output.



Edit:



To Work with any number of Words, you can use:



@"(w+s){3}"


where the quantifier (here 3) can be set to whatever you want.



Edit2:



If you don't want to replace numbers:



@"([a-zA-Z]+s){2}"





share|improve this answer























  • Thank you a lot, but what if there are numbers in the text, how can you make it so that it would skip them?
    – Scr1pt25
    Nov 19 '18 at 19:17



















0














You can use linq, first parse the line on spaces to get a list of words (you are doing) and then for every odd element add the text required, finally convert the array back into a string.



    string test = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
var words = test.Split(' ');
var wordArray = words.Select((w, i) =>
(i % 2 != 0) ? (w+ " asd ") : (w + " ")
).ToArray();

var res = string.Join("", wordArray);


Also this can be easily changed to insert after every n words by changing the mod function. Do remember that array index will start at 0 though.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53380717%2fhow-to-insert-a-string-every-n-words%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    You can do it with a regex replace, like this regex:



    @"w+sw+s"


    It maches a Word, a Space, a Word and a Space.



    Now replace it with:



    "$&abb "


    How to use:



    using System.Text.RegularExpressions;

    string text = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
    Regex regex = new Regex(@"w+sw+s");
    string output = regex.Replace(text, "$&abb ");


    Now you will get the desired output.



    Edit:



    To Work with any number of Words, you can use:



    @"(w+s){3}"


    where the quantifier (here 3) can be set to whatever you want.



    Edit2:



    If you don't want to replace numbers:



    @"([a-zA-Z]+s){2}"





    share|improve this answer























    • Thank you a lot, but what if there are numbers in the text, how can you make it so that it would skip them?
      – Scr1pt25
      Nov 19 '18 at 19:17
















    1














    You can do it with a regex replace, like this regex:



    @"w+sw+s"


    It maches a Word, a Space, a Word and a Space.



    Now replace it with:



    "$&abb "


    How to use:



    using System.Text.RegularExpressions;

    string text = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
    Regex regex = new Regex(@"w+sw+s");
    string output = regex.Replace(text, "$&abb ");


    Now you will get the desired output.



    Edit:



    To Work with any number of Words, you can use:



    @"(w+s){3}"


    where the quantifier (here 3) can be set to whatever you want.



    Edit2:



    If you don't want to replace numbers:



    @"([a-zA-Z]+s){2}"





    share|improve this answer























    • Thank you a lot, but what if there are numbers in the text, how can you make it so that it would skip them?
      – Scr1pt25
      Nov 19 '18 at 19:17














    1












    1








    1






    You can do it with a regex replace, like this regex:



    @"w+sw+s"


    It maches a Word, a Space, a Word and a Space.



    Now replace it with:



    "$&abb "


    How to use:



    using System.Text.RegularExpressions;

    string text = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
    Regex regex = new Regex(@"w+sw+s");
    string output = regex.Replace(text, "$&abb ");


    Now you will get the desired output.



    Edit:



    To Work with any number of Words, you can use:



    @"(w+s){3}"


    where the quantifier (here 3) can be set to whatever you want.



    Edit2:



    If you don't want to replace numbers:



    @"([a-zA-Z]+s){2}"





    share|improve this answer














    You can do it with a regex replace, like this regex:



    @"w+sw+s"


    It maches a Word, a Space, a Word and a Space.



    Now replace it with:



    "$&abb "


    How to use:



    using System.Text.RegularExpressions;

    string text = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
    Regex regex = new Regex(@"w+sw+s");
    string output = regex.Replace(text, "$&abb ");


    Now you will get the desired output.



    Edit:



    To Work with any number of Words, you can use:



    @"(w+s){3}"


    where the quantifier (here 3) can be set to whatever you want.



    Edit2:



    If you don't want to replace numbers:



    @"([a-zA-Z]+s){2}"






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 20 '18 at 2:56

























    answered Nov 19 '18 at 18:49









    Poul BakPoul Bak

    5,44331232




    5,44331232












    • Thank you a lot, but what if there are numbers in the text, how can you make it so that it would skip them?
      – Scr1pt25
      Nov 19 '18 at 19:17


















    • Thank you a lot, but what if there are numbers in the text, how can you make it so that it would skip them?
      – Scr1pt25
      Nov 19 '18 at 19:17
















    Thank you a lot, but what if there are numbers in the text, how can you make it so that it would skip them?
    – Scr1pt25
    Nov 19 '18 at 19:17




    Thank you a lot, but what if there are numbers in the text, how can you make it so that it would skip them?
    – Scr1pt25
    Nov 19 '18 at 19:17













    0














    You can use linq, first parse the line on spaces to get a list of words (you are doing) and then for every odd element add the text required, finally convert the array back into a string.



        string test = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
    var words = test.Split(' ');
    var wordArray = words.Select((w, i) =>
    (i % 2 != 0) ? (w+ " asd ") : (w + " ")
    ).ToArray();

    var res = string.Join("", wordArray);


    Also this can be easily changed to insert after every n words by changing the mod function. Do remember that array index will start at 0 though.






    share|improve this answer


























      0














      You can use linq, first parse the line on spaces to get a list of words (you are doing) and then for every odd element add the text required, finally convert the array back into a string.



          string test = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
      var words = test.Split(' ');
      var wordArray = words.Select((w, i) =>
      (i % 2 != 0) ? (w+ " asd ") : (w + " ")
      ).ToArray();

      var res = string.Join("", wordArray);


      Also this can be easily changed to insert after every n words by changing the mod function. Do remember that array index will start at 0 though.






      share|improve this answer
























        0












        0








        0






        You can use linq, first parse the line on spaces to get a list of words (you are doing) and then for every odd element add the text required, finally convert the array back into a string.



            string test = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
        var words = test.Split(' ');
        var wordArray = words.Select((w, i) =>
        (i % 2 != 0) ? (w+ " asd ") : (w + " ")
        ).ToArray();

        var res = string.Join("", wordArray);


        Also this can be easily changed to insert after every n words by changing the mod function. Do remember that array index will start at 0 though.






        share|improve this answer












        You can use linq, first parse the line on spaces to get a list of words (you are doing) and then for every odd element add the text required, finally convert the array back into a string.



            string test = "Monster in the Jungle Once upon a time a wise lion lived in jungle. He was always respected for his intelligence and kindness.";
        var words = test.Split(' ');
        var wordArray = words.Select((w, i) =>
        (i % 2 != 0) ? (w+ " asd ") : (w + " ")
        ).ToArray();

        var res = string.Join("", wordArray);


        Also this can be easily changed to insert after every n words by changing the mod function. Do remember that array index will start at 0 though.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 20 '18 at 3:56









        peeyush singhpeeyush singh

        352210




        352210






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53380717%2fhow-to-insert-a-string-every-n-words%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

            How to fix TextFormField cause rebuild widget in Flutter