Как видите, пустая строка, появлявшаяся ранее из-за того, что после слова "суше" следовали запятая и пробел, теперь исключена.
Разделение является очень важной процедурой обработки строк, поскольку с его помощью нередко получают отдельные лексемы, составляющие исходную строку. Так, в программе ведения базы данных может возникнуть потребность разделить с помо щью метода Split строку запроса "показать все остатки больше 100" на отдель ные части, включая подстроки "показать" и "100". В процессе разделения исключа ются разделители, поэтому в итоге получается подстрока "показать" (без начальных и конечных пробелов), а не подстрока "показать". Этот принцип демонстрируется в приведенном ниже примере программы, где строки, содержащие такие бинарные математические операции, как 10 + 5, преобразуются в лексемы, а затем эти операции выполняются и выводится конечный результат. // Преобразовать строки в лексемы. using System; class TokenizeDemo { static void Main { string[] input = { "100 + 19", "100 / 3,3", "-3 * 9", "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. Заполнение и обрезка строк
Иногда в строке требуется удалить начальные и конечные пробелы. Такая операция называется обрезкой и нередко требуется в командных процессорах. Например, про грамма ведения базы данных способна распознавать команду "print", но пользователь может ввести эту команду с одним иди несколькими начальными и конечными про белами. Поэтому перед распознаванием введенной команды необходимо удалить все подобные пробелы. С другой стороны, строку иногда требуется заполнить пробелами, чтобы она имела необходимую минимальную длину. Так, если подготавливается вы вод результатов в определенном формате, то каждая выводимая строка должна иметь определенную длину, чтобы сохранить выравнивание строк. Для упрощения подобных операций в C# предусмотрены соответствующие методы.
Для обрезки строк используется одна из приведенных ниже форм метода Trim. public string Trim public string Trim(params char[] trimChars)
В первой форме метода Trim из вызывающей строки удаляются начальные и конечные пробелы. А во второй форме этого метода удаляются начальные и конечные вхождения в вызывающей строке символов из массива trimChars. В обеих формах возвращается получающаяся в итоге строка.
Строку можно заполнить символами слева или справа. Для заполнения строки сле ва служат такие формы метода PadLeft. public string PadLeft(int totalWidth) public string PadLeft(int totalWidth, char paddingChar)