Здесь расскажем о паре полезных методов, позволяющих вставить одну строку в другую, удалить диапазон символов, а также заменить какой-либо символ или строку на другую строку.
string Insert(int iIndex, string strInsert);
string Remove(int iIndex, int iCount);
string Replace(char chOld, char chNew);
string Replace(string strOld, string strNew);
Разбиение строк на массив в C# выполняет вызов метода Split:
string[] Split(params char[] achSeparators);
string[] Split(params char[] achSeparators, int IReturnCount);
Если первый параметр метода равен null, то в качестве разделительных символов будут использованы пробельные символы.
первым аргументом методов Console.Writeили ConsoleWriteLineможет быть строка, описывающая форматирование остальных аргументов.
string str = String.Format("The sum of {0} and {1} is {2}", 2, 3, 2 + 3); //возвращает строку "The sum of 2 and 3 is 5»,
Метод Format, как и большинство методов, является перегруженным и может вызываться с разным числом параметров. Метод Format в качестве результата возвращает переданную ему строку, где все спецификации формата заменены строками, полученными в результате форматирования объектов.
Общий синтаксис, специфицирующий формат, таков:
{N [,M [:<коды_форматирования>]]}
Обязательный параметр N задает индекс объекта, заменяющего формат. Можно считать, что методу всегда передается массив объектов, даже если фактически передан один объект. Индексация объектов начинается с нуля, как это принято в массивах.
Второй параметр M, если он задан, определяет минимальную ширину поля, которое отводится строке, вставляемой вместо формата.
Третий необязательный параметр задает коды форматирования, указывающие, как следует форматировать объект.
Все становится ясным, когда появляются соответствующие примеры. Вот они:
public void TestFormat() {
//метод Format
int x=77;
string s= string.Format("x={0}",x);
Console.WriteLine(s + "\tx={0}",x);
s= string.Format("Итого:{0,10} рублей",x);
Console.WriteLine(s);
s= string.Format("Итого:{0,6:######} рублей",x);
Console.WriteLine(s);
s= string.Format("Итого:{0:P} ",0.77);
Console.WriteLine(s);
s= string.Format("Итого:{0,4:C} ",77.77);
Console.WriteLine(s);
}
void Sort(Array агг);
void Sort(Array агг, int iStartlndex, int iCount);
Например, массив определен так:
string[] astr = { "New Jersey", "New York", "new Mexico", "New Hampshire" };
Обратите внимание на строчную букву «’n’» в третьей строке. После вызова:
Array.Sort(astr);
Элементы массива будут расположены и таком порядке: «New Hampshire». «NewJersey», «new Mexico», «New York». Поскольку метод Sort вызывает метод СотраrеТо класса Siring, сортировка нечувствительна к регистру. Однако, если б одним из элементов массива являлась строка «New Mexico» (заглавная «N»), строка «New Mexico» после сортировки была бы расположена за строкой «new Mexico»,
Например, для выполнения чувствительной к регистру сортировки строкового массива astr следует вызвать:
Array. Sort(astr);
int BinarySearch(Array агг, object obj);
int BinarySearch(Array агг, int iStartlndex, int iCount, object obj);
Для двоичного поиска массив должен быть предварительно отсортирован. Допустим, отсортированный массив из четырех строчек (названий штатов Америки) содержит элементы:
"New Hampshire", "New Jersey", "new Mexico", "New York"
Вызов:
Array.BinarySearch(astr, "New York");
возвращает З, поскольку строка совпадает с astr[3]. Вызов:
Агray.BinarySearch(astr, "New Mexico");
возвращает -4. Отрицательное значение указывает, что строка не содержится в массиве. (Напоминаю, сортировка по умолчанию чувствительна к регистру!) Дополнение к возвращаемому значению равно 3, т. с. astr[3] является следующим наибольшим элементом массива,
Вызов:
Array.BinarySearch(astr, "new Mexico"));
возвращает 2. так как аргумент совпадает с astr[2]. Вызов: