Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Строки (класс StringBuilder)




Класс StringBuilder принадлежит пространству имен System.Text

Этот класс работает быстрее, чем класс String, так как при изменении строки, созданной как экземпляр класса String, у нас создается каждый раз новый экземпляр класса, а старый уничтожается, при использовании же класса StringBuilder расходов на создание-уничтожение экземпляра класса нет - мы работаем всегда с одним экземпляром.

Обратите внимание, что для этого класса мы не можем использовать простое присваивание:

StringBuilder s="abc"; //Неправильно!

В этом случае мы должны действовать так:

StringBuilder s=new StringBuilder("abc"); //Правильно

У класса StringBuilder нет статических методов. Все его методы - динамические. Ниже перечислены основные свойства и методы класса StringBuilder:

Свойство Length. Возвращает длину строки. Пример использования:

int k=s.Length;

Свойство только для чтения MaxCapacity. Дает максимальное количество символов, которые можно записать в объект типа StringBuilder. Пример использования:

lblResult.Text=s.MaxCapacity;

Метод Append. Прибавляет строку к существующей. Пример использования:

StringBuilder s1=new StringBuilder("Cogito "); StringBuilder s2=new StringBuilder("ergo "); s1.Append(s2); s1.Append("sum"); lblResult.Text=s1; //Напечатается "Cogito ergo sum"

Метод Equals. Служит для сравнения двух строк. Возвращает true или false. Пример использования:

if(s1.Equals(s2)) lblResult.Text="Строки равны"; else lblResult.Text="Строки не равны";

Метод Insert. Вставляет символы в заданную позицию (Нумерация идет с нуля). Пример использования:

StringBuilder s1=new StringBuilder("abcde"); s1.Insert(2, "xyz"); lblResult.Text=s1; //Напечатается "abxyzcde"

Метод Remove. Удаляет символы из строки. Пример использования:

StringBuilder s1=new StringBuilder("abcde"); s1.Remove(1, 2); lblResult.Text=s1; //Напечатается "ade"

Первый параметр у Remove - это с какой позиции удаляем (нумерация с нуля), второй - сколько символов удаляем.

Метод Replace. Заменяет символы. Пример использования:

StringBuilder s=new StringBuilder("abcdeabcde"); s.Replace("abc", "ZZZ"); lblResult.Text=s; //Напечатается "ZZZdeZZZde"

Проект «Количество символов»

 

namespace PrString

{

public partial class frmString: Form

{

public frmString()

{

InitializeComponent();

}

 

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

 

private void btnRun_Click(object sender, EventArgs e)

{

int k=0;

String S = txtSymbol.Text;

String Text = rtbText.Text;

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

if (String.Equals(Text.Substring(i, 1), S)) k++;

lblResult.Text = "K= " + Convert.ToString(k);

 

}

}

}

 


Проект «Количество слов»

 

namespace PrKolSlov

{

public partial class frmKolSlov: Form

{

public frmKolSlov()

{

InitializeComponent();

}

 

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

 

private void btnRun_Click(object sender, EventArgs e)

{

String Slovo="", Text = rtbText.Text;

int k=0;

lstSlova.Items.Clear();

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

{

String S=Text.Substring(j,1);

if (!((S==" ")||(S==",")||(S==".")||(S=="!")))

Slovo+=S;

else

if (!(Slovo==""))

{

k++;

lstSlova.Items.Add(Slovo);

Slovo="";

}

}

lblResult.Text = "Количество слов равно " + Convert.ToString(k);

}

}

}


РАБОТА С ФАЙЛАМИ

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.IO; //Поключение библиотеки работы с файлами

using System.Windows.Forms;

 

namespace PrFile

{

public partial class frmFile: Form

{

int[] X = new int[30000]; //Объявление массива X

int[] Y = new int[30000]; //Объявление массива Y

int N=0; // Размер массива

public frmFile()

{

InitializeComponent();

}

 

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

 

private void btnLoad_Click(object sender, EventArgs e)

{

N=0;

string path = @"input.txt"; // имя файла, символ @ для игнорирования слэша

FileInfo fileinfo = new FileInfo(path); // объявляем новый экземпляр файла

lstMassiv.Items.Clear(); // очистка ListBox

using (StreamReader streamreader = fileinfo.OpenText()) // Открываем файл для чтения

{

String sText = ""; // Строка текста в файле

String p = " "; // Разделитель чисел (пробел)

while ((sText = streamreader.ReadLine())!= null) //Цикл до тех пор, пока строки не пустые

{

int InProbel = sText.IndexOf(p); // Определяем место расположения символа p (пробела)

X[N] = Convert.ToUInt16(sText.Substring(0, InProbel)); // Координата X от начала строки до пробела

Y[N] = Convert.ToUInt16(sText.Substring(InProbel + 1, sText.Length - InProbel - 1)); // Координата Y после пробела до конца строки

lstMassiv.Items.Add(Convert.ToString(X[N]) + " " + Convert.ToString(Y[N])); // Запись в ListBox для контроля

N++; //Увеличение счетчика на 1

}

}

}

 

private void btnSave_Click(object sender, EventArgs e)

{

string path = @"output.txt"; // имя файла, символ @ для игнорирования слэша

FileInfo fileinfo = new FileInfo(path); // объявляем новый экземпляр файла

using (StreamWriter streamwriter = fileinfo.CreateText()) // Открываем файл для записи

{

for (int I = 0; I < N; I++) // Цикл

streamwriter.WriteLine(Convert.ToString(X[I]) + " " + Convert.ToString(Y[I])); // Запись строки в файл

}

 

}

}


Анимация

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace PrAnimal

{

public partial class frmAnimal: Form

{

Graphics picGraf;

double X0, Y0, X, Y, R=100,A=0, AR;

public frmAnimal()

{

InitializeComponent();

}

 

private void btnExit_Click(object sender, EventArgs e)

{

Close();

}

 

private void frmAnimal_Load(object sender, EventArgs e)

{

picGraf = picAnimal.CreateGraphics();

X0=picAnimal.Width/2;

Y0=picAnimal.Height/2;

}

 

private void btnClear_Click(object sender, EventArgs e)

{

SolidBrush greenBrush = new SolidBrush(Color.Green);

picGraf.FillRectangle(greenBrush, 0, 0, picAnimal.Width, picAnimal.Height);

}

 

private void btnPusk_Click(object sender, EventArgs e)

{

if (timBudilnik.Enabled)

{

timBudilnik.Enabled = false;

btnPusk.Text = "Пуск";

}

else

{

timBudilnik.Enabled = true;

btnPusk.Text = "Стоп";

}

}

 

private void timBudilnik_Tick(object sender, EventArgs e)

{

A++;

AR = A * Math.PI/180;

X = X0 + R * Math.Cos(AR);

Y = Y0 - R * Math.Sin(AR);

picAnimal.Location = new Point((int)X, (int)Y);

}

 

private void picAnimal_Paint(object sender, PaintEventArgs e)

{

System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath();

Point[] Makushka = {

new Point(20, 0),

new Point(5, 15),

new Point(35, 15)};

shape.AddPolygon(Makushka);

Point[] Vetka = {

new Point(20, 15),

new Point(0, 35),

new Point(40, 35)};

shape.AddPolygon(Vetka);

Point[] Penek = {

new Point(15, 35),

new Point(25, 35),

new Point(25, 40),

new Point(15, 40)};

shape.AddPolygon(Penek);

this.picAnimal.Region = new System.Drawing.Region(shape);

}

}

}

 


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...