Основы языка C# 2005. Евсеева О.Н - 114 стр.

UptoLike

Составители: 

118
В нашем примере часть строки strM1 копируется в массив World. По ходу
дела в методе вызывается процедура PrintCharAr класса Testing, печатающая
массив символов как строку. Вот ее текст:
void PrintCharAr(string name, char[] ar)
{
Console.WriteLine(name);
for (int i = 0; i < ar.Length; i++) Console.Write(ar[i]);
Console.WriteLine();
} //PrintCharAr
Метод ToCharArray позволяет преобразовать строку в массив символов. К
сожалению, обратная операция не определена, поскольку метод ToString,
которым, конечно же, обладают все объекты класса Char[ ], печатает
информацию о классе, а не содержимое массива. Ситуацию легко исправить,
написав подходящую процедуру. Вот текст этой процедуры CharArrayToString,
вызываемой в нашем тестирующем примере:
string CharArrayToString(char[] ar)
{
string result = "";
for (int i = 0; i < ar.Length; i++)
result += ar[i];
return result;
} //CharArrayToString
Класс Char[ ], как и всякий класс-массив в C#, является наследником не
только класса Object, но и класса Array, и, следовательно, обладает всеми
методами родительских классов, подробно рассмотренных в предыдущей главе.
А есть ли у него специфические методы, которые позволяют выполнять
операции над строками, представленными массивами символов? Таких
специальных операций нет. Но некоторые перегруженные методы класса Array
можно рассматривать как операции над строками. Например, метод Copy дает
возможность выделять и заменять подстроку в теле строки. Методы IndexOf,
LastIndexOf позволяют определить индексы первого и последнего вхождения в
строку некоторого символа. К сожалению, их нельзя использовать для более
интересной операциинахождения индекса вхождения подстроки в строку.
При необходимости такую процедуру можно написать самому. Вот как она
выглядит:
int IndexOfStr(char[ ] s1, char[ ] s2)
{
//возвращает индекс первого вхождения подстроки s2 в
//строку s1
int i = 0, j = 0, n = s1.Length - s2.Length;
bool found = false;
while ((i <= n) && !found)
{