Operacje na tekstach. Część 2

Wybrane metody klasy String

Klasa String zawiera szereg pól i metod służących do udostępniania informacji o tekście z możliwością wykonywania prostych i złożonych operacji na tekście. Jedne z częściej używanych metod to

Informacje o pozostałych częściej używanych metod tej klasy, takie jak ToLower(), ToUpper(), Trim(), Join() odszukaj samodzielnie i zapisz w zeszycie.

Zadania

Zad. 1

Używając metody Substring() wytnij z tekstu źródłowego zadaną ilość znaków zaczynając od wskazanego indeksu. Wynik wyświetl na ekranie. Zadanie zrealizuj jako dwie aplikacje- desktopowa oraz konsolowa.

Wynik działania aplikacji desktopowej

metody Substring() Visual Studio C#

Przykładowy kod funkcji realizujący tę część zadania

Wskazówka:


private void button1_Click(object sender, EventArgs e)
{
	//wytnij teskt
	string tekst_zrodlo = textBox1.Text;
	int id = int.Parse(textBox2.Text);
	int ile= int.Parse(textBox3.Text);
	string tekst_wyciety = tekst_zrodlo.Substring(id, ile);
	MessageBox.Show("Wycięty fragment tekstu: " +
					Environment.NewLine + tekst_wyciety,
					"Komunikat",
					MessageBoxButtons.OK,
					MessageBoxIcon.Information);
}					

Wynik działania aplikacji konsolowej

Substring() Visual Studio C#

Przykładowy kod funkcji realizujący tę część zadania w rozwiązaniu konsolowym

Wskazówka:


static void Zadanie1()
{
	Console.WriteLine("Wprowadź teskt źródłowy");
	string tekst_zrodlo = Console.ReadLine();
	Console.WriteLine("Podaj indeks początku wycinania: ");
	int id = int.Parse(Console.ReadLine());
	Console.WriteLine("Podaj ilość znaków do wycięcia: ");
	int ile = int.Parse(Console.ReadLine());
	string tekst_wyciety = tekst_zrodlo.Substring(id, ile);
	Console.WriteLine("Wyciety fragment tekstu to: ");
	Console.WriteLine(tekst_wyciety);
}

Zad. 2

Napisz funkcję, która porówna ze sobą dwa imiona i odpowie na pytanie: które imię w porządku alfabetycznym jest pierwsze. Zadanie rozwiąż jako aplikacja desktopowa i konsolowa.

Przykładowy wynik działania aplikacji desktopowej

String.Compare Visual Studio C#

W proponowanym rozwiązaniu wykorzystałem odczyt kolejnej linii kontrolki TextBox pracującej w trybie Multiline. Można wykorzystać dwie różne kolejne kontrolki TextBox specjalnie dedykowane do wprowadzania imion.

Przykładowy kod funkcji realizujący tę część zadania

Wskazówka:


private void button2_Click(object sender, EventArgs e)
{
	int ileLinii = textBox1.Lines.Length;
	if(ileLinii > 1 ) 
	{
		string imieA = textBox1.Lines[0];
		string imieB = textBox1.Lines[1];
		int wynikPorownania = String.Compare(imieA, imieB);
		string trescKomunikatu = null;
		switch(wynikPorownania)
		{
			case -1:
				trescKomunikatu = "Imię "+
								  imieA+
								  " jest w alfabecie przed imieniem "+
								  imieB;
				break;
			case 0:
				trescKomunikatu = "Imię " +
								  imieA +
								  " jest równe imieniu " +
								  imieB;
				break;
			case 1:
				trescKomunikatu = "Imię " +
								  imieA +
								  " jest w alfabecie po imieniu " +
								  imieB;
				break;
		}
		MessageBox.Show(trescKomunikatu,
						 "Komunikat",
						 MessageBoxButtons.OK,
						 MessageBoxIcon.Information);
	}
}

Wynik działania aplikacji konsolowej

String.Compare konsola Visual Studio C#

Przykładowy kod funkcji porównujący imiona w porządku alfabetycznym w rozwiązaniu konsolowym

Wskazówka:


static void Zadanie2()
{
	Console.WriteLine("Wprowadź pierwsze imię ");
	string imieA = Console.ReadLine();
	Console.WriteLine("Wprowadź drugie imię ");
	string imieB = Console.ReadLine();
	int wynikPorownania = String.Compare(imieA, imieB);
	string trescKomunikatu = null;
	switch (wynikPorownania)
	{
		case -1:
			trescKomunikatu = "Imię " +
								imieA +
								" jest w alfabecie przed imieniem " +
								imieB;
			break;
		case 0:
			trescKomunikatu = "Imię " +
								imieA +
								" jest równe imieniu " +
								imieB;
			break;
		case 1:
			trescKomunikatu = "Imię " +
								imieA +
								" jest w alfabecie po imieniu " +
								imieB;
			break;
	}
	Console.WriteLine(trescKomunikatu);
}

Zad. 3

Sprawdź czy w podanym tekście źródłowym znajduje się dowolny ciąg znaków. Jeśli wystąpi to podaj indeks pierwszego wystąpienia podanego ciągu znaków. Wskazówka, użyj metody IndexOf() klasy String.

Przykład działania aplikacji desktopowej

IndexOf Visual Studio C#

Kod realizujący to zadanie

Wskazówka:


private void button3_Click(object sender, EventArgs e)
{
	string tekstZrodlowy = textBox1.Text;
	string szukanyCiag = textBox4.Text;
	int pozycja=tekstZrodlowy.IndexOf(szukanyCiag);
	string trescKomunikatu = null;
	if (pozycja > -1)
	{
		trescKomunikatu = "Szukany ciag znaków " +
					szukanyCiag +
					" jest na pozycji " +
					pozycja;
	}
	else trescKomunikatu = "Szukany ciag znaków nie występuje w źródle";
	MessageBox.Show(trescKomunikatu,
					  "Komunikat",
					  MessageBoxButtons.OK,
					  MessageBoxIcon.Information);
}

Rozwiązanie pod konsolę działa jak poniżej

IndexOf konsola Visual Studio C#

Kod proponowanej metody rozwiązania pod konsolę

Wskazówka:


static void Zadanie3()
{
	Console.WriteLine("Wprowadź teskt źródłowy ");
	string tekstZrodlowy = Console.ReadLine();
	Console.WriteLine("Wprowadź szukany ciąg ");
	string szukanyCiag = Console.ReadLine();
	int pozycja = tekstZrodlowy.IndexOf(szukanyCiag);
	string trescKomunikatu = null;
	if (pozycja > -1)
	{
		trescKomunikatu = "Szukany ciag znaków " +
					szukanyCiag +
					" jest na pozycji " +
					pozycja;
	}
	else trescKomunikatu = "Szukany ciag znaków nie występuje w źródle";
	Console.WriteLine(trescKomunikatu);
}

Zad 4.

Znajdź wszystkie indeksy wystąpienia podanego ciągu znaków we wprowadzonym tekście źródłowym. Rozwiązanie przedstaw jako aplikacja konsolowa wzorując się na proponowanym rozwiązaniu desktopowym.

W poniższym przykładzie szukano ciągu znaków: kot

IndexOf desktop Visual Studio C#

Przykładowa funkcja realizująca powyższe działanie w rozwiązaniu desktopowym ma kod jak poniżej

Wskazówka:


private void button4_Click(object sender, EventArgs e)
{
	int idPoz = -1;
	int j = 0;
	string tekstZrodlowy = textBox1.Text;
	string szukanyCiag = textBox4.Text;
	int skok = szukanyCiag.Length;
	while ((idPoz = tekstZrodlowy.IndexOf(szukanyCiag, j)) >= 0)
	{
		textBox1.AppendText(Environment.NewLine+
							"kolejna pozycja to: " +
							j);
		j = idPoz + skok;
	}
}

Ilustracja działającej aplikacji konsolowej.

IndexOf konsola Visual Studio C#
Układ okresowy- kod qr
Układ okresowy

Układ okresowy pierwiastków- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Alkomat- wirtualny test kod qr
Alkomat- wirtualny test

Alkomat- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Taklarz- olinowanie stałe kod qr
Olinowanie stałe- kalkulator średnic

Olinowanie stałe- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
przepis na gogfry

Przepis na gofry

zobacz
przepis na bitą śmietanę

Przepis na bitą śmietanę

zobacz