в приведенном ниже примере программы, где строки, содержащие такие бинарные математические операции, как 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) public static string Join(string separator, IEnumerable[] values)
В первой форме рассматриваемого здесь метода возвращается строка, содержащая строковое представление объектов из массива values. Во второй форме возвращается строка, содержащая результат сцепления коллекции строк, обозначаемой параметром values. И в третьей форме возвращается строка, содержащая результат сцепления строковых представлений объектов из коллекции, обозначаемой параметромvalues. Во всех трех случаях каждая предыдущая строка отделяется от последующей разделителем, определяемым параметром separator.
Заполнение и обрезка строк
Иногда в строке требуется удалить начальные и конечные пробелы. Такая операция называется обрезкой и нередко требуется в командных процессорах. Например, программа ведения базы данных способна распознавать команду "print' 7, но пользователь может ввести эту команду с одним или несколькими начальными и конечными пробелами. Поэтому перед распознаванием введенной команды необходимо удалить все подобные пробелы. С другой стороны, строку иногда требуется заполнить пробелами, чтобы она имела необходимую минимальную длину. Так, если подготавливается вывод результатов в определенном формате, то каждая выводимая строка должна иметь определенную длину, чтобы сохранить выравнивание строк. Для упрощения подобных операций в C# предусмотрены соответствующие методы.
Для обрезки строк используется одна из приведенных ниже форм методаTrim ().
public string Trim()
public string Trim(params char[] trimChars)
В первой форме методаTrim () из вызывающей строки удаляются начальные и конечные пробелы. А во второй форме этого метода удаляются начальные и конечные вхождения в вызывающей строке символов из массива trimChars. В обеих формах возвращается получающаяся в итоге строка.
Строку можно заполнить символами слева или справа. Для заполнения строки слева служат такие формы методаPadLef t ().
public string PadLeft(int totalWidth)
public string PadLeft(int totalWidth, char paddingChar)
В первой форме методаPadLef t () вводятся пробелы с левой стороны вызывающей строки, чтобы ее общая длина стала равной значению параметра totalWidth. А во второй форме данного метода символы, обозначаемые параметром paddingChar , вводятся с левой стороны вызывающей строки, чтобы ее общая длина стала равной значению параметра totalWidth . В обеих формах возвращается получающаяся в итоге строка. Если значение параметра totalWidth меньше длины вызывающей строки, то возвращается копия неизмененной вызывающей строки.
Читать дальше