Pereiti prie turinio

c# užduotis su tekstu


Rekomenduojami pranešimai

Duota užduotis:

Tekstiniame faile pateiktas tekstas. Žodžiai iš eilutės į kitą eilutę nekeliami. Skyrikliai žinomi. Kiek

yra kiekvienoje eilutėje žodžių, kurie baigiasi ir prasideda ta pačia raide. Kuris iš šių žodžių turi

daugiausiai skirtingų raidžių? Perkelkite šį žodį kartu su už jo esančiais skyrikliais į eilutės pradžią.

 

class Program

{

const string CFd = "...\\...\\Duomenys.txt";

const string CFr = "...\\...\\Rezultatai.txt";

const string CFa = "...\\...\\Analizė.txt";

static void Main(string[] args)

{

char[] skyrikliai = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' };

Apdoroti(CFd, CFr, CFa, skyrikliai, sutampantysŽodžiai);

}

static int ŽodžiųSkaičius(string eilutė, char[] skyrikliai)

{

string[] parts = eilutė.Split(skyrikliai,

StringSplitOptions.RemoveEmptyEntries);

int sutampa = 0;

foreach (string žodis in parts)

if ((žodis[0] == žodis[žodis.Length - 1]) ||

(žodis[0] == (Char.ToUpper(žodis[žodis.Length - 1]))))

sutampa++;

return sutampa;

}

static void Apdoroti(string fd, string fr, string fa, char[] skyrikliai, string[] sutampantysŽodžiai)

{

string[] lines = File.ReadAllLines(fd, Encoding.GetEncoding(1257));

string eilutė = new string('-', 50);

using (var far = File.CreateText(fr))

{

using (var faa = File.CreateText(fa))

{

faa.WriteLine(eilutė);

faa.WriteLine("| Eil. | Žodžių, kurie prasideda ir baigiasi |\n" +

"| nr. | ta pačia raide, skaičius |");

faa.WriteLine(eilutė);

int i = 1;

string[] Žodžiai = {};

int ind = 0;

foreach (string line in lines)

{

faa.WriteLine("| {0, 5:d} | {1, 20:d} |", i, ŽodžiųSkaičius(line, skyrikliai));

faa.WriteLine(eilutė);

i++;

}

string skirtingosRaidės = Daugiausia(Žodžiai);

faa.WriteLine("Daugiausia skirtingų raidžių turi žodis - {0}", skirtingosRaidės);

}

}

}

static int SkirtingųRaidžiųSkaičius(string žodis)

{

string abc = "aąbcčdeęėfghiįyjklmnoprsštuųūvzž";

int raidžiųSkaičius = 0;

int raidžiųDažnis;

for (int j = 0; j < abc.Length; j++)

{

raidžiųDažnis = 0;

for (int i = 0; i < žodis.Length; i++)

{

if ((abc[j] == žodis) || (Char.ToUpper(abc[j]) == žodis))

raidžiųDažnis++;

}

if (raidžiųDažnis > 0)

raidžiųSkaičius++;

}

return raidžiųSkaičius;

}

 

 

Kaip palyginti kuris žodis turi daugiau skirtingų raidžių? Arba kaip surašyti kiekvienos eilutės sutampančius žodžius į masyvą?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

string oldString = "abc def";
string newString = oldString.Replace("def", "");

 

arba

string test1 = "0123456";
string result1 = test1.Remove(3);
Console.WriteLine(result1);

string test2 = "012 345 678";
int index1 = test2.IndexOf(' ');
int index2 = test2.IndexOf(' ', index1 + 1);
string result2 = test2.Remove(index1, index2 - index1);
Console.WriteLine(result2);

Output:

012

012 678

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 4 savaičių...

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...