Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс_ред1 С#.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.8 Mб
Скачать

Разбор строки

Метод Split, определенный в классе String, позволяет выполнять разбор строк, содержащих ключевые слова, отделенные друг от друга символами-разделителями. По сути это задача, обратная той, что решается с помощью метода Join.

Рассмотрим программу, предназначенную для разбора строки запуска утилит с параметрами вида «имя_параметра=значение»:

using System;

namespace Split

{

class Program

{

static void Main(string[] args)

{

string str = "myprog.exe x=l,y=4,z=5";

string[] resArray = str.Split(new Char[] {',', ' '});

foreach(string res in resArray)

{

Console.WriteLine(res);

}

Console.ReadLine();

}

}

}

Исходная строка, подлежащая разбору, представлена ниже:

string str = "myprog.exe x=l,у=4,z=5";

Здесь мы объявили строку, предназначенную для запуска программы с именем myprog, в которой этой программе передаются 3 параметра с именами х, у, и z.

Разбор выполняется при помощи метода Split:

string[] resArray = str.Split(new Char[] {',', ' '});

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

Метод Split разбирает строку, создавая массив из отдельных ключевых слов, обнаруженных в строке. При необходимости вы можете ограничить размер создаваемого массива, указав максимально допустимое значение верхней границы при помощи второго параметра метода Split.

После запуска описанной выше программы на консоли появится результат разбора строки:

Сравнение строк

Для сравнения строк, также как и для сравнения чисел, может использоваться оператор ==. Однако есть и еще одна возможность — использование метода Compare. Обе сравниваемые строки передаются этому методу в качестве параметров. Дополнительно методу Compare можно указывать, каким именно образом выполнять сравнение.

Если строки равны, метод Compare возвращает нулевое значение. Если первая строка меньше второй (используется лексикографическое сравнение), возвращается отрицательное значение, а если больше — положительное.

В программе, исходный текст которой приведен ниже, методу Compare передается 3 параметра. Первые два из них представляют собой ссылки на сравниваемые строки, а третий, имеющий значение true, указывает, что при сравнении не следует учитывать регистр букв.

using System;

namespace Compare

{

class Program

{

static void Main(string[] args)

{

for (;;)

{

Console.Write("введите строку: ");

string s = Console.ReadLine();

if(s == "exit")

{

Console.WriteLine("Совпадение по оператору ==");

break;

}

if (String.Compare(s, "exit", true) == 0)

{

Console.WriteLine("Совпадение по методу Compare");

break;

}

}

Console.WriteLine("Завершение работы");

Console.ReadLine();

}

}

}

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