laboratorijska veŽba 3: rad sa stringovima u c# · zatim izbaciti sva blanko mesta iz rečenice,...
TRANSCRIPT
-
LABORATORIJSKA VEŽBA 3: Rad sa stringovima u C#
Cilj vežbe: Upoznavanje sa radom sa stringovima. Tip podataka String olakšava rada sa rečima i rečenicama. Upoznati se sa dostupnim metodama i svojstvima klase String za manipulaciju sa stringovima. Kreiranje WinForm Core aplikaciju koja podržava rad sa stringovima.
Zadatak 1: Učitavanje stringova sa konzole Kreirati konzolnu .NET Core aplikaciju čiji je izvorni kod prikazan na slici 3-1. Izvorni kod
programa sa konzole učitava dve rečenice tipa string, a zatim vrši štampanje druge reči prve rečenice a potom spaja učitane dve rečenice. Spajanje realizovati metodom Concat iz klase String i imenskog prostora System. Na slici 3-1 je prikazan izvorni kod za ovaj zadatak.
Slika 3-1. Izvorni kod za Zadatak 1
Ispisati sadržaj ekrana po izvršenju programa:
-
Komentarisati deklaraciju string recenica, recenica2, recenicaSum;
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________ Čime je ograničeno izvršavanje petlje while (recenica[i] != ' ')?
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________ Komentarisati svaki red prikazanog programskog koda: string recenica, recenica2, recenicaSum;?
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
recenicaSum = string.Concat(recenica, recenica2);
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
recenica2 = Console.ReadLine();
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________ Objasnite primenu svojtva Length.
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________ Objasnite primenu metode Concat(recenica, " " + recenica2)
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
-
Zadatak 2: Prikaz osnovnih metoda za manipulaciju sa stringovima Uneti izvorni kod programa koji demonstrira korišćenje najznačajnijih metoda za manipulaciju sa stringovima. Izvorni kod je prikazan na slici 3-2. using System; namespace Vezba_3_Z2 { class Program { static void Main(string[] args) { string ime_i_prezime; string prezime; ime_i_prezime = " Ime Prezime "; prezime = "Prezime"; Console.WriteLine("String 1: " + '\'' + ime_i_prezime + '\''); Console.WriteLine("String 2: " + '\'' + prezime +'\''); // Pravi kopiju stringa i štampa je Console.WriteLine("Kolonirani string 1: " + ime_i_prezime.Clone()); // Proverava istovetnost kopije sa originalom i štampa rezultat Console.WriteLine("Istovetnost sa originalom: " + ime_i_prezime.CompareTo(ime_i_prezime.Clone()) ); // Poredi sadržaj dva stringa i vraca 0 ukoliku su jednaki Console.WriteLine("Poređenje stringova 1 i 2: " + ime_i_prezime.CompareTo(prezime)); // Proverava da li određeni string sadrži drugi string Console.WriteLine("Ime u stringu 1? " + ime_i_prezime.Contains("Ime")); // Proverava da li se određeni string završava sa zadatim karakterom Console.WriteLine("Zavrsava se na 'e' string 1: " + ime_i_prezime.EndsWith("e")); // Proverava da li se određeni string završava sa određenim karakterom Console.WriteLine("Zavrsava se na 'e' string 2: " + prezime.EndsWith("e")); // Poredi dva stringa i vraca true ili false Console.WriteLine("Istovetnost stringova 1 i 2: " + ime_i_prezime.Equals(prezime)); // Vraća prvi indeks pojavljivanja određenog karaktera Console.WriteLine("Indeh karaktera 'z': " + ime_i_prezime.IndexOf("z")); // Konvertuje string sa malim slovima Console.WriteLine("Stringovi konvertovani malim slovima: " + ime_i_prezime.ToLower()); // Konvertuje string sa velikim slovima Console.WriteLine("Stringovi konvertovani velikim slovima: " + ime_i_prezime.ToUpper()); // Insertuje novi string na definisanu poziciju u stringu
-
Console.WriteLine("Dodat string na početak: " + ime_i_prezime.Insert(0, "Zdravo ")); // Vraća zadnji indeks pojavljivanja definisanog karaktera Console.WriteLine("Zadnje pojavljivanje karaktea 'z': " + ime_i_prezime.LastIndexOf("z")); // Vraća broj karaktera (duzinu) stringa Console.WriteLine("Duzina stringa 1: " + ime_i_prezime.Length); // Briše sve karaktere od početka stringa do zadatog indeksa Console.WriteLine("Brisanje od indeksa 4 stringa 1: " + ime_i_prezime.Remove(4)); // Vrši zamenu karaktera Console.WriteLine("Izmenjeni string 1: " + ime_i_prezime.Replace('e', 'E')); // Razdvaja string na više stringova prema zadatom separatoru string[] split = ime_i_prezime.Split(new char[] {'e'}); // Štampanje svih ekstrahovanih stringova int ii = 0; foreach(string brojac in split) { Console.WriteLine(split[ii++]); } // Proverava da li se prvi karakter stringa poklapa sa specificiranim karakterom Console.WriteLine(ime_i_prezime.StartsWith("I")); // Vraća podstring na zadatim indeksima Console.WriteLine(ime_i_prezime.Substring(2, 5)); // Konvertuje string u niz karaktera Console.WriteLine(ime_i_prezime.ToCharArray()); // Uklanja blanko karakter sa pocetka i karaja stringa Console.WriteLine(ime_i_prezime.Trim()); } } }
Slika 3-2. Izvorni kod za Zadatak 2 Ispisati sadržaj ekrana po izvršenju programa:
-
Zadatak 3: Manipulacija personalnim stringovima U izvornom kodu zadatka promeniti stringove tako da predstavljaju Vaše ime i prezime. Ako je potrebno načinite izmene u izvornom kodu. Ispisati sadržaj ekrana po izvršenju programa:
Da li su dobijeni stringovi odgovaraju Vašim očekivanima? Objasnite dekleraciju jedne metodu za manipulaciju sa stringovima po vlastitim izboru. Koliko ima preklopljenih metoda? Navedite njihove deklaracije i objasnite razlike.
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
Zadatak 4: .NET Core WinForm aplikacija za rad sa stringovima Kreirati WinForm .NET Core aplikaciju koja omogućava eksperimentisanje sa metodama za rad sa stringovima. NAPOMENA: Da bi ste mogli da kreirate ovaj tip aplikacije morate posedovati VS 2019 i verziju 3.1.0 Core-a. Ako nema u ponudi ovog tipa aplikacije morate inovirati VS. Najednostavniji način da to uradite je iz samog VS-a kako je to prikazano na slici 3-3. Budite spremni na čekanje da se obavi kompletno inoviranje VS. Pre izrade same laboratorijske vežbe obavite ovo unapređenje razvojnog alata.
Na slici 3.4 prikazan je početni dizajnerski prozor ovog tipa aplikacije u VS-u. Primetite da je potpuno podržan rad sa Windows Formama u Core-u što nije bilo podržano u prethodnim verzijama. Ako nije prikazan prozor sa alatima, možete u sekciji za pretraživanje uneti pojam „Toolbox“ i iz ponude selektujte traženi prozor.
Kreirajte „.NET Core Windows Form“ aplikaciju koja omogućava unos stringa i prikaz rezultata rada metoda za manipulaciju sa stringovima. Realizovati kloniranje ulaznog stringa,
-
kao i stringova koji se sastoje od samo veliki, odnosno samo malih slova. Na slici 3.5 prikazan je željeni izgled za Zadatak 4.
Slika 3-3. Inoviranje VS za nove tipove aplikacija
Slika 3-4. Dizajnerski prozor Windows Forms aplikacija u .NET Core-u
Iz Toolbox-a selektujte odgovarajuću komponentu (u terminologiji Windowsa - kontrolu) i prevucite je na radnu površinu forme.
-
Slika 3-5. Izgled forme za Zadatak 4 i prozor Solutions explorer
Dvostrukim klikom na Combo box na labeli Akcija, u editorskom prozoru će se otvoriti izvorni kod koji kreira prikazanu formu. Na slici 3-6 je prikazan izvorni kod za realizaciju. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Vezba_2_Core_Z4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void label1_Click(object sender, EventArgs e) { } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { //TextBoxIzlaznistring.Text = TextBoxUlaznistring.Text; //string str1 = comboBox_Akcija.SelectedIndex.ToString(); //string str2 = comboBox_Akcija.SelectedItem.ToString(); //TextBoxUlaznistring.Text = str1; //TextBoxIzlaznistring.Text = str2; } private void button1_Click(object sender, EventArgs e) {
-
//TextBoxIzlaznistring.Text = TextBoxUlaznistring.Text; // TextBoxIzlaznistring.Text = comboBox_Akcija.SelectedIndex.ToString(); string str1 = comboBox_Akcija.SelectedIndex.ToString(); string strPom, strUlaz, strIzlaz; strUlaz = TextBoxUlaznistring.Text; switch (str1) { case "0": { // Kloniranje strPom = (string)strUlaz.Clone(); TextBoxIzlaznistring.Text = strPom; } break; case "1": { // Velika slova TextBoxIzlaznistring.Text = strUlaz.ToUpper(); } break; case "2": { // Mala slova TextBoxIzlaznistring.Text = strUlaz.ToLower(); } break; } } private void Ulazi_string_TextChanged(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } } }
Slika 3-6. Izvorni kod za realizaciju Zadatka 4
-
Prikazati rezultate izvedenog sa svojim imenom i prezimenom.
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
Zadaci za samostalan rad Napisati program koji učitava sa tastature jednu rečenicu tipa string, i određuje koliko ima blanko karaktera u njoj. Zatim izbaciti sva blanko mesta iz rečenice, konvertovati sva slova u mala i prikazati formiranu rečenicu.
Napisati program koji učitava sa tastature jednu rečenicu tipa string i proverava da li je ona palindrom, odnosno da li se čita isto sa leva u desno i sa desna u levo, npr. Ana voli Milovana je palindrom.
Napisati izvorni kod programa, kao i sadržaj ekrana po izvršenju programa, za učitanu rečenicu “Ana voli Milovana”.
Napisati izvorni kod programa, kao i sadržaj ekrana po izvršenju programa za učitane rečenice “Ana”, “Ana ”, “ana” i “ANA”.
-
Napisati WinForm aplikaciju u .NET Core-u za rad sa dva string. U padajućoj listi postaviti izbor akcija, a u poljima za umos uneti dva stringa. Rezultat rada izabrane metode prikazati u polju Rezultat rada.
INFO: Spisak svih metoda klase String
Klasa String se nalazi u imenskom prostoru _____________________. Klasa String se nalazi u sklopu _____________________.
U Nišu POTVRĐUJE
LABORATORIJSKA VEŽBA 3: Rad sa stringovima u C#
Cilj vežbe: Upoznavanje sa radom sa stringovima. Tip podataka String olakšava rada sa rečima i rečenicama. Upoznati se sa dostupnim metodama i svojstvima klase String za manipulaciju sa stringovima. Kreiranje WinForm Core aplikaciju koja podržava rad sa stringovima.
Zadatak 1: Učitavanje stringova sa konzole
Kreirati konzolnu .NET Core aplikaciju čiji je izvorni kod prikazan na slici 3-1. Izvorni kod programa sa konzole učitava dve rečenice tipa string, a zatim vrši štampanje druge reči prve rečenice a potom spaja učitane dve rečenice. Spajanje realizovati metodom Concat iz klase String i imenskog prostora System. Na slici 3-1 je prikazan izvorni kod za ovaj zadatak.
Slika 3-1. Izvorni kod za Zadatak 1
Ispisati sadržaj ekrana po izvršenju programa:
Komentarisati deklaraciju string recenica, recenica2, recenicaSum;
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
Čime je ograničeno izvršavanje petlje while (recenica[i] != ' ')?
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
Komentarisati svaki red prikazanog programskog koda:
string recenica, recenica2, recenicaSum;?
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
recenicaSum = string.Concat(recenica, recenica2);
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
recenica2 = Console.ReadLine();
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
Objasnite primenu svojtva Length.
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
Objasnite primenu metode Concat(recenica, " " + recenica2)
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
Zadatak 2: Prikaz osnovnih metoda za manipulaciju sa stringovima
Uneti izvorni kod programa koji demonstrira korišćenje najznačajnijih metoda za manipulaciju sa stringovima. Izvorni kod je prikazan na slici 3-2.
using System;
namespace Vezba_3_Z2
{
class Program
{
static void Main(string[] args)
{
string ime_i_prezime; string prezime;
ime_i_prezime = " Ime Prezime ";
prezime = "Prezime";
Console.WriteLine("String 1: " + '\'' + ime_i_prezime + '\'');
Console.WriteLine("String 2: " + '\'' + prezime +'\'');
// Pravi kopiju stringa i štampa je
Console.WriteLine("Kolonirani string 1: " + ime_i_prezime.Clone());
// Proverava istovetnost kopije sa originalom i štampa rezultat
Console.WriteLine("Istovetnost sa originalom: " + ime_i_prezime.CompareTo(ime_i_prezime.Clone()) );
// Poredi sadržaj dva stringa i vraca 0 ukoliku su jednaki
Console.WriteLine("Poređenje stringova 1 i 2: " + ime_i_prezime.CompareTo(prezime));
// Proverava da li određeni string sadrži drugi string
Console.WriteLine("Ime u stringu 1? " + ime_i_prezime.Contains("Ime"));
// Proverava da li se određeni string završava sa zadatim karakterom
Console.WriteLine("Zavrsava se na 'e' string 1: " + ime_i_prezime.EndsWith("e"));
// Proverava da li se određeni string završava sa određenim karakterom
Console.WriteLine("Zavrsava se na 'e' string 2: " + prezime.EndsWith("e"));
// Poredi dva stringa i vraca true ili false
Console.WriteLine("Istovetnost stringova 1 i 2: " + ime_i_prezime.Equals(prezime));
// Vraća prvi indeks pojavljivanja određenog karaktera
Console.WriteLine("Indeh karaktera 'z': " + ime_i_prezime.IndexOf("z"));
// Konvertuje string sa malim slovima
Console.WriteLine("Stringovi konvertovani malim slovima: " + ime_i_prezime.ToLower());
// Konvertuje string sa velikim slovima
Console.WriteLine("Stringovi konvertovani velikim slovima: " + ime_i_prezime.ToUpper());
// Insertuje novi string na definisanu poziciju u stringu
Console.WriteLine("Dodat string na početak: " + ime_i_prezime.Insert(0, "Zdravo "));
// Vraća zadnji indeks pojavljivanja definisanog karaktera
Console.WriteLine("Zadnje pojavljivanje karaktea 'z': " + ime_i_prezime.LastIndexOf("z"));
// Vraća broj karaktera (duzinu) stringa
Console.WriteLine("Duzina stringa 1: " + ime_i_prezime.Length);
// Briše sve karaktere od početka stringa do zadatog indeksa
Console.WriteLine("Brisanje od indeksa 4 stringa 1: " + ime_i_prezime.Remove(4));
// Vrši zamenu karaktera
Console.WriteLine("Izmenjeni string 1: " + ime_i_prezime.Replace('e', 'E'));
// Razdvaja string na više stringova prema zadatom separatoru
string[] split = ime_i_prezime.Split(new char[] {'e'});
// Štampanje svih ekstrahovanih stringova
int ii = 0;
foreach(string brojac in split)
{
Console.WriteLine(split[ii++]);
}
// Proverava da li se prvi karakter stringa poklapa sa specificiranim karakterom
Console.WriteLine(ime_i_prezime.StartsWith("I"));
// Vraća podstring na zadatim indeksima
Console.WriteLine(ime_i_prezime.Substring(2, 5));
// Konvertuje string u niz karaktera
Console.WriteLine(ime_i_prezime.ToCharArray());
// Uklanja blanko karakter sa pocetka i karaja stringa
Console.WriteLine(ime_i_prezime.Trim());
}
}
}
Slika 3-2. Izvorni kod za Zadatak 2
Ispisati sadržaj ekrana po izvršenju programa:
Zadatak 3: Manipulacija personalnim stringovima
U izvornom kodu zadatka promeniti stringove tako da predstavljaju Vaše ime i prezime. Ako je potrebno načinite izmene u izvornom kodu.
Ispisati sadržaj ekrana po izvršenju programa:
Da li su dobijeni stringovi odgovaraju Vašim očekivanima? Objasnite dekleraciju jedne metodu za manipulaciju sa stringovima po vlastitim izboru. Koliko ima preklopljenih metoda? Navedite njihove deklaracije i objasnite razlike.
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
Zadatak 4: .NET Core WinForm aplikacija za rad sa stringovima
Kreirati WinForm .NET Core aplikaciju koja omogućava eksperimentisanje sa metodama za rad sa stringovima.
NAPOMENA: Da bi ste mogli da kreirate ovaj tip aplikacije morate posedovati VS 2019 i verziju 3.1.0 Core-a. Ako nema u ponudi ovog tipa aplikacije morate inovirati VS. Najednostavniji način da to uradite je iz samog VS-a kako je to prikazano na slici 3-3. Budite spremni na čekanje da se obavi kompletno inoviranje VS. Pre izrade same laboratorijske vežbe obavite ovo unapređenje razvojnog alata.
Na slici 3.4 prikazan je početni dizajnerski prozor ovog tipa aplikacije u VS-u. Primetite da je potpuno podržan rad sa Windows Formama u Core-u što nije bilo podržano u prethodnim verzijama. Ako nije prikazan prozor sa alatima, možete u sekciji za pretraživanje uneti pojam „Toolbox“ i iz ponude selektujte traženi prozor.
Kreirajte „.NET Core Windows Form“ aplikaciju koja omogućava unos stringa i prikaz rezultata rada metoda za manipulaciju sa stringovima. Realizovati kloniranje ulaznog stringa, kao i stringova koji se sastoje od samo veliki, odnosno samo malih slova. Na slici 3.5 prikazan je željeni izgled za Zadatak 4.
Slika 3-3. Inoviranje VS za nove tipove aplikacija
Slika 3-4. Dizajnerski prozor Windows Forms aplikacija u .NET Core-u
Iz Toolbox-a selektujte odgovarajuću komponentu (u terminologiji Windowsa - kontrolu) i prevucite je na radnu površinu forme.
Slika 3-5. Izgled forme za Zadatak 4 i prozor Solutions explorer
Dvostrukim klikom na Combo box na labeli Akcija, u editorskom prozoru će se otvoriti izvorni kod koji kreira prikazanu formu. Na slici 3-6 je prikazan izvorni kod za realizaciju.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Vezba_2_Core_Z4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//TextBoxIzlaznistring.Text = TextBoxUlaznistring.Text;
//string str1 = comboBox_Akcija.SelectedIndex.ToString();
//string str2 = comboBox_Akcija.SelectedItem.ToString();
//TextBoxUlaznistring.Text = str1;
//TextBoxIzlaznistring.Text = str2;
}
private void button1_Click(object sender, EventArgs e)
{
//TextBoxIzlaznistring.Text = TextBoxUlaznistring.Text;
// TextBoxIzlaznistring.Text = comboBox_Akcija.SelectedIndex.ToString();
string str1 = comboBox_Akcija.SelectedIndex.ToString();
string strPom, strUlaz, strIzlaz;
strUlaz = TextBoxUlaznistring.Text;
switch (str1)
{
case "0":
{
// Kloniranje
strPom = (string)strUlaz.Clone();
TextBoxIzlaznistring.Text = strPom;
}
break;
case "1":
{
// Velika slova
TextBoxIzlaznistring.Text = strUlaz.ToUpper();
}
break;
case "2":
{
// Mala slova
TextBoxIzlaznistring.Text = strUlaz.ToLower();
}
break;
}
}
private void Ulazi_string_TextChanged(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
Slika 3-6. Izvorni kod za realizaciju Zadatka 4
Prikazati rezultate izvedenog sa svojim imenom i prezimenom.
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
Zadaci za samostalan rad
Napisati program koji učitava sa tastature jednu rečenicu tipa string, i određuje koliko ima blanko karaktera u njoj. Zatim izbaciti sva blanko mesta iz rečenice, konvertovati sva slova u mala i prikazati formiranu rečenicu.
Napisati izvorni kod programa, kao i sadržaj ekrana po izvršenju programa, za učitanu rečenicu “Ana voli Milovana”.
Napisati program koji učitava sa tastature jednu rečenicu tipa string i proverava da li je ona palindrom, odnosno da li se čita isto sa leva u desno i sa desna u levo, npr. Ana voli Milovana je palindrom.
Napisati izvorni kod programa, kao i sadržaj ekrana po izvršenju programa za učitane rečenice “Ana”, “Ana ”, “ana” i “ANA”.
Napisati WinForm aplikaciju u .NET Core-u za rad sa dva string. U padajućoj listi postaviti izbor akcija, a u poljima za umos uneti dva stringa. Rezultat rada izabrane metode prikazati u polju Rezultat rada.
INFO: Spisak svih metoda klase String
Klasa String se nalazi u imenskom prostoru _____________________.
Klasa String se nalazi u sklopu _____________________.
U Nišu
POTVRĐUJE