- Автор темы
- #1
Работа со строками.
Строка - это один из наиболее важных типов данных при программировании. Вам уже известен подход языков C/C++ для работы с ними. Сейчас настало время разобрать подход к данной проблеме в C#.Во многих языках программирования строка – это массив символов, но в C# строки являются объектами типа данных string.
Способы создания объектов string
Самым простым способом создания объектов типа string является использование строкового литерала. Например:
Вторым способом является создание объекта на основании массива типа char.Например:
Обобщим всё вышесказанное.
Естественно на экране вы увидите надпись C# forever !!! .
Массивы строк
Строки могут быть значениями элементов массива. Например:
Операции со строками
В классе string сосредоточено достаточное количество методов по работе со строками. Они схожи с уже изученными вами методами класса CString библиотеки MFC. Например:
Сравнивает две строки между собой (строку, через объект которой вызывается данный метод и строку, содержащуюся в объекте strB). Возвращает 0 если строки равны, значение меньше нуля, если содержимое вызывающей строки меньше значения в strB, значение больше нуля, если содержимое вызывающей строки больше значения в strB. Знакомо ли не правда? Да это ж функция strcmp из библиотеки <string.h>! Приведем пример использования строковых методов:
Подробности использования методов приведенных в примере смотрите в MSDN. Для доступа к конкретным элементам строки используется оператор []. У него есть один минус - он даёт доступ только на чтение.Например:
То есть мы не можем модифицировать уже существующую строку, например, заменить ряд символов в ней. Для изменения существующей строки необходимо создавать новый объект. Например, для получения части строки можно использовать метод Substring . Например:
Строка - это один из наиболее важных типов данных при программировании. Вам уже известен подход языков C/C++ для работы с ними. Сейчас настало время разобрать подход к данной проблеме в C#.Во многих языках программирования строка – это массив символов, но в C# строки являются объектами типа данных string.
Способы создания объектов string
Самым простым способом создания объектов типа string является использование строкового литерала. Например:
Код:
string str = "Это простая тестовая строка";
Вторым способом является создание объекта на основании массива типа char.Например:
Код:
char [] ar ={'F','i','r','e'};
string str = new string(ar);
Обобщим всё вышесказанное.
Код:
using System;
class Sample
{
static void Main()
{
char [] ar ={'C','#'};
string str = new string(ar);
string str2 = " forever !!!";
Console.Write(str+str2+"\n");
Console.ReadLine();
}
}
Естественно на экране вы увидите надпись C# forever !!! .
Массивы строк
Строки могут быть значениями элементов массива. Например:
Код:
using System;
class Sample
{
static void Main()
{
string [] str={" Smoke "," On "," The "," Water "};
for(int i =0; i<str.Length;i++){
Console.WriteLine(str[i]);
}
str[0]=" Fire ";
str[1]=" In ";
str[2]=" The ";
str[3]=" Sky ";
Console.WriteLine("\n\n\n");
for(int i =0; i<str.Length;i++){
Console.WriteLine(str[i]);
}
Console.Read();
}
}
Операции со строками
В классе string сосредоточено достаточное количество методов по работе со строками. Они схожи с уже изученными вами методами класса CString библиотеки MFC. Например:
Код:
int CompareTo(
string strB
);
Сравнивает две строки между собой (строку, через объект которой вызывается данный метод и строку, содержащуюся в объекте strB). Возвращает 0 если строки равны, значение меньше нуля, если содержимое вызывающей строки меньше значения в strB, значение больше нуля, если содержимое вызывающей строки больше значения в strB. Знакомо ли не правда? Да это ж функция strcmp из библиотеки <string.h>! Приведем пример использования строковых методов:
Код:
using System;
class Sample
{
static void Main()
{
string str =" This ";
string str2 = " is ";
string str3 = " sample ";
string str4 = " is ";
Console.WriteLine("Длина строки str = {0}",str.Length);
if(str == str4)
Console.WriteLine("Строки str и str4 равны");
else
Console.WriteLine("Строки str и str4 не равны");
if(str2!=str4)
Console.WriteLine("Строки str и str4 не равны");
else
Console.WriteLine("Строки str и str4 равны");
string tempcopy = string.Copy(str);
Console.WriteLine(tempcopy);
string text = "Sunny one two one";
Console.WriteLine(" Индекс первого вхождения слова one = {0} ",text.IndexOf("one"));
Console.WriteLine(" Индекс последнего вхождения слова one = {0} ",text.LastIndexOf("one"));
string res= "Start "+text+" !!!";
Console.WriteLine(res);
int r = str3.CompareTo(" sample ");
Console.WriteLine(r);
Console.Read();
}
}
Подробности использования методов приведенных в примере смотрите в MSDN. Для доступа к конкретным элементам строки используется оператор []. У него есть один минус - он даёт доступ только на чтение.Например:
Код:
string str ="This";
Console.WriteLine(str[0]);
// Строка ниже приводит к ошибке на этапе компиляции
str[0]='X'; // ОШИБКА !!! Доступ только на чтении
Console.Read();
Console.WriteLine(str[0]);
str="Test"; // А так можно !!!
То есть мы не можем модифицировать уже существующую строку, например, заменить ряд символов в ней. Для изменения существующей строки необходимо создавать новый объект. Например, для получения части строки можно использовать метод Substring . Например:
Код:
string str ="Kind Of Magic";
string t = str.Substring(0,3);
Console.WriteLine(t);
Console.Read();