программирование. Руководство su P# a n Reference в herbert schildt полное руководство с 0 герберт шилдт
Скачать 3.32 Mb.
|
public int IndexOf(string value, Возвращает индекс первого вхождения int startlndex, int count, подстроки value в вызывающей строке. StringComparison comparisonType) Поиск начинается с элемента, указываемого по индексу startlndex, и охватывает число элементов, определяемых параметром count. Параметр comparisonType определяет конкретный способ выполнения поиска. Метод возвращает значение ‑1, если искомая подстрока не обнаружена public int LastlndexOf(char value) Возвращает индекс последнего вхождения символа value в вызывающей строке. Если искомый символ не обнаружен, возвращается значение ‑1 public int IndexOfAny(char[] anyOf) Возвращает индекс первого вхождения любого символа из массива anyOf, обнаруженного в вызывающей строке. Метод возвращает значение ‑1, если не обнаружено совпадение ни с одним из символов из массива anyOf. Поиск осуществляется порядковым способом public int IndexOfAny(char[] anyOf, Возвращает индекс первого вхождения лю int startlndex) бого символа из массива anyOf, обнаруженного в вызывающей строке. Поиск начинается с элемента, указываемого по индексу startlndex Метод возвращает значение ‑1, если не обнаружено совпадение ни с одним из символов из массива anyOf. Поиск осуществляется порядковым способом public int IndexOfAny(char [] anyOf, Возвращает индекс первого вхождения int startlndex, int count) любого символа из массива anyOf, обнаруженного в вызывающей строке. Поиск начинается с элемента, указываемого по^ индексу startlndex, и охватывает число Метод Назначение элементов, определяемых параметром count. Метод возвращает значение ‑1, если не обнаружено совпадение ни с одним из символов из массива anyOf. Поиск осуществляется порядковым способом public int LastlndexOf(string value) Возвращает индекс последнего вхождения подстроки value в вызывающей строке. Если искомая подстрока не обнаружена, возвращается значение ‑1 public int LastlndexOf(char value, Возвращает индекс последнего вхождения int startlndex) символа value в части вызывающей строки. Поиск осуществляется в обратном порядке, начиная с элемента, указываемого по индексу startlndex , и заканчивая элементом с нулевым индексом. Метод возвращает значение ‑1, если искомый символ не обнаружен public int LastlndexOf(string value, Возвращает индекс последнего вхождения int startlndex) подстроки value в части вызывающей строки. Поиск осуществляется в обратном порядке, начиная с элемента, указываемого по индексу startlndex , и заканчивая элементом с нулевым индексом. Метод возвращает значение ‑1, если искомая подстрока не обнаружена public int LastlndexOf(char value, Возвращает индекс последнего вхождения int startlndex, int count) символа value в части вызывающей строки. Поиск осуществляется в обратном порядке, начиная с элемента, указываемого по индексу startlndex , и охватывает число элементов, определяемых параметром count. Метод возвращает значение ‑1, если искомый символ не обнаружен public int LastlndexOf(string value, Возвращает индекс последнего вхождения int startlndex, int count) подстроки value в части вызывающей строки. Поиск осуществляется в обратном порядке, начиная с элемента, указываемого по индексу startlndex , и охватывает число элементов, определяемых параметром count. Метод возвращает значение ‑1, если искомая подстрока не обнаружена public int LastlndexOf(string value, Возвращает индекс последнего вхождения StringComparison comparisonType) подстроки value в вызывающей строке. Параметр comparisonType определяет конкретный способ выполнения поиска. Метод возвращает значение ‑1, если искомая подстрока не обнаружена _ Продолжение табл. 22.3 Метод Назначение public int LastlndexOf(string value, Возвращает индекс последнего вхождения int startlndex, StringComparison подстроки value в части вызывающей comparisonType) строки. Поиск осуществляется в обратном порядке, начиная с элемента, указываемого по индексу startlndex, и заканчивая элементом с нулевым индексом. Параметр comparisonType определяет конкретный способ выполнения поиска. Метод возвращает значение ‑1, если искомая подстрока не обнаружена public int LastlndexOf(string value, Возвращает индекс последнего вхождения int startlndex, int count, подстроки value в части вызывающей StringComparison comparisonType) строки. Поиск осуществляется в обратном порядке, начиная с элемента, указываемого по индексу startlndex, и охватывает число элементов, определяемых параметром count. Параметр comparisonType определяет конкретный способ выполнения поиска. Метод возвращает значение ‑1, если искомая подстрока не обнаружена public int LastlndexOfAny(char[] Возвращает индекс последнего вхождения anyOf) любого символа из массива anyOf, обнаруженного в вызывающей строке. Метод возвращает значение ‑1, если не обнаружено совпадение ни с одним из символов из массива anyOf. Поиск осуществляется порядковым способом public int LastlndexOfAny(char[] • Возвращает индекс последнего вхождения anyOf, int startlndex) любого символа из массива anyOf, обнаруженного в вызывающей строке. Поиск начинается в обратном порядке с элемента, указываемого по индексу startlndex, и заканчивая элементом с нулевым индексом. Метод возвращает значение ‑1, если не обнаружено совпадение ни с одним из символов из массива anyOf. Поиск осуществляется порядковым способом public int LastlndexOfAny(char[] Возвращает индекс последнего вхождения anyOf, int startlndex, int count) любого символа из массива anyOf, обнаруженного в вызывающей строке. Поиск осуществляется в обратном порядке, начиная с элемента, указываемого по индексу startlndex, и охватывает число элементов, определяемых параметром count, число элементов, определяемых параметром count. Метод возвращает значение ‑1, Метод Назначение public bool StartsWith(string value) public bool StartsWith(string value, StringComparison comparisonType) public bool StartsWith(string value, bool ignoreCase, Culturelnfo culture) если не обнаружено совпадение ни с одним из символов из массива anyOf. Поиск осуществляется порядковым способом Возвращает логическое значение true, если вызывающая строка начинается с подстроки value. В противном случае возвращается логическое значение false Возвращает логическое значение true, если вызывающая строка начинается с подстроки value. В противном случае возвращается логическое значение false. Параметр comparisonType определяет конкретный способ выполнения поиска Возвращает логическое значение true, если вызывающая строка начинается с подстроки value. В противном случае возвращается логическое значение false. Если параметр ignoreCase принимает логическое значение true, то при сравнении не учитываются различия между прописным и строчным вариантами букв. В противном случае эти различия учитываются. Поиск осуществляется с использованием информации о культурной среде, обозначаемой параметром culture Разделение и соединение строк К основным операциям обработки строк относятся разделение и соединение. При разделении строка разбивается на составные части, а при соединении строка составляется из отдельных частей. Для разделения строк в классе String определен метод Split (), а для соединения – метод Join () . Существует несколько вариантов метода Split (). Ниже приведены две формы этого метода, ставшие наиболее часто используемыми, начиная с версии C# 1.0. public string[ ] Split(params char[ ] separator) public string[ ] Split(params char[ ] separator, int count) В первой форме метода Split () вызывающая строка разделяется на составные части. В итоге возвращается массив, содержащий подстроки, полученные из вызы вающей строки. Символы, ограничивающие эти подстроки, передаются в массиве separator. Если массив separator пуст или ссылается на пустую строку, то в качестве разделителя подстрок используется пробел. А во второй форме .данного метода возвращается количество подстрок, определяемых параметром count. Существует несколько форм метода Join (). Ниже приведены две формы, ставшие доступными, начиная с версии 2.0 среды .NET Framework. public static string Join(string separator , string[] value) public static string Join(string separator, string[] value, int startlndex, int count) В первой форме метода Join () возвращается строка, состоящая из сцепляемых подстрок, передаваемых в массиве value. Во второй форме также возвращается строка, состоящая из подстрок, передаваемых в массиве value, но они сцепляются в определенном количестве count , начиная с элемента массива value [startlndex ]. В обеих формах каждая последующая строка отделяется от предыдущей разделительной строкой, определяемой параметром separator. В приведенном ниже примере программы демонстрируется применение методов Split( ) и Join(). // Разделить и соединить строки. using System; class SplitAndJoinDemo { static void Main() { string str = "Один на суше, другой на море."; char[] seps = { ' ', '.', ',' }; // Разделить строку на части, string[] parts = str.Split(seps); Console.WriteLine("Результат разделения строки: "); for(int i=0; i < parts.Length; i++) Console.WriteLine (parts [i]); //А теперь соединить части строки, string whole = String.Join(" | ", parts); Console.WriteLine("Результат соединения строки: "); Console.WriteLine(whole); } } Ниже приведен результат выполнения этой программы. Результат разделения строки: Один на суше другой на море Результат соединения строки: Один | на | суше | | другой | на | море Обратите внимание на пустую строку между словами "суше" и "другой". Дело в том, что в исходной строке после слова "суше" следует запятая и пробел, как в подстроке "суше, другой". Но запятая и пробел указаны в качестве разделителей. Поэтому при разделении данной строки между двумя разделителями (запятой и пробелом) оказывается пустая строка. Существует ряд других форм метода Split () , принимающих параметр типа StringSplitOptions. Этот параметр определяет, являются ли пустые строки частью разделяемой в итоге строки. Ниже приведены все эти формы метода Split (). public string[] Split(params char[] separator, StringSplitOptions options) public string[] Split(string[] separator, StringSplitOptions options) public string[] Split(params char[] separator, int count, StringSplitOptions options) public string[] Split(string[] separator, int count, StringSplitOptions options) В двух первых формах метода Split () вызывающая строка разделяется на части и возвращается массив, содержащий подстроки, полученные из вызывающей строки. Символы, разделяющие эти подстроки, передаются в массиве separator. Если массив separator пуст, то в качестве разделителя используется пробел. А в третьей и четвертой формах данного метода возвращается количество строк, ограничиваемое параметром count. Но во всех формах параметр options обозначает конкретный способ обработки пустых строк, которые образуются в том случае, если два разделителя оказываются рядом. В перечислении StringSplitOptions определяются только два значения: None и RemoveEmptyEntries. Если параметр options принимает значение None, то пустые строки включаются в конечный результат разделения исходной строки, как показано в предыдущем примере программы. А если параметр options принимает значение RemoveEmptyEntries, то пустые строки исключаются из конечного результата разделения исходной строки. Для того чтобы стали понятнее последствия исключения пустых строк, попробуем заменить в предыдущем примере программы строку кода string[] parts = str.Split (seps); следующим фрагментом кода. string[] parts = str.Split(seps, StringSplitOptions.RemoveEmptyEntries) ; При выполнении данной программы получится следующий результат. Результат разделения строки: Один на суше другой на море Результат соединения строки: Один | на | суше | другой | на | море Как видите, пустая строка, появлявшаяся ранее из‑за того, что после слова "суше" следовали запятая и пробел, теперь исключена. Разделение является очень важной процедурой обработки строк, поскольку с его помощью нередко получают отдельные лексемы, составляющие исходную строку. Так, в программе ведения базы данных может возникнуть потребность разделить с помощью метода Split () строку запроса "показать все остатки больше 100" на отдельные части, включая подстроки "показать" и "100". В процессе разделения исключаются разделители, поэтому в итоге получается пбдстрока "показать" (без начальных и конечных пробелов), а не подстрока " показать". Этот принцип демонстрируется в приведенном ниже примере программы, где строки, содержащие такие бинарные математические операции, как 10 + 5, преобразуются в лексемы, а затем эти операции выполняются и выводится конечный результат. // Преобразовать строки в лексемы. using System; class TokenizeDemo { static void Main() { string[] input = { "100 + 19", "100 / 3,3", «_3 * 9..r "100 ‑ 87" }; char[] seps = {' '}; for (int i=0; i < input.Length; i++) { // разделить строку на части string[] parts = input[i].Split(seps); Console.Write("Команда: "); for (int j=0; j < parts.Length; j++) Console.Write(parts[j] + " "); Console.Write(", результат: "); double n = Double.Parse(parts[0]); double n2 = Double.Parse(parts[2]); switch(parts[1]) { case Console.WriteLine(n + n2); break; case Console.WriteLine (n ‑ n2); break; case Console.WriteLine(n * n2); break; case "/": Console.WriteLine(n / n2); break; } } } } Вот к какому результату приводит выполнение этой программы. Команда: 100 + 19 , результат: 119 Команда: 100 / 3,3 , результат: 30,3030303030303 Команда: ‑3*9, результат: ‑27 Команда: 100 ‑ 87 , результат: 13 Начиная с версии 4.0, в среде .NET Framework стали доступными следующие дополнительные формы метода Join (). public static string Join(string separator, params object[] values) public static string Join(string separator, IEnumerable В первой форме рассматриваемого здесь метода возвращается строка, содержащая строковое представление объектов из массива values. Во второй форме возвращается строка, содержащая результат сцепления коллекции строк, обозначаемой параметром values. И в третьей форме возвращается строка, содержащая результат сцепления строковых представлений объектов из коллекции, обозначаемой параметром values. Во всех трех случаях каждая предыдущая строка отделяется от последующей разделителем, определяемым параметром separator. Заполнение и обрезка строк |