• Добро пожаловать на сайт - Forumteam.digital !

    Что бы просматривать темы форума необходимо зарегестрироваться или войти в свой аккаунт.

    Группа в телеграме (подпишитесь, что бы не потерять нас) - ForumTeam Chat [Подписатся]
    Связь с администратором - @ftmadmin

10. Строки как они есть.

Redman

<FORUMTEAM>
Команда форума
Регистрация
13.11.17
Сообщения
13.340
Реакции
8.377
Баллы
1.200
FTC
208¢
Работа со строками.
Строка - это один из наиболее важных типов данных при программировании. Вам уже известен подход языков 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();
 
Сверху Снизу