Kniga-Online.club
» » » » Герберт Шилдт - C# 4.0: полное руководство

Герберт Шилдт - C# 4.0: полное руководство

Читать бесплатно Герберт Шилдт - C# 4.0: полное руководство. Жанр: Программирование издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

Один | на | суше | другой | на | море

Как видите, пустая строка, появлявшаяся ранее из-за того, что после слова "суше" следовали запятая и пробел, теперь исключена.

Разделение является очень важной процедурой обработки строк, поскольку с его помощью нередко получают отдельные лексемы, составляющие исходную строку. Так, в программе ведения базы данных может возникнуть потребность разделить с помощью метода 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<string>[] values)

public static string Join<T>(string separator, IEnumerable<T>[] values)

В первой форме рассматриваемого здесь метода возвращается строка, содержащая строковое представление объектов из массива 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)

В первой форме метода PadLeft() вводятся пробелы с левой стороны вызывающей строки, чтобы ее общая длина стала равной значению параметра totalWidth. А во второй форме данного метода символы, обозначаемые параметром paddingChar, вводятся с левой стороны вызывающей строки, чтобы ее общая длина стала равной значению параметра totalWidth. В обеих формах возвращается получающаяся в итоге строка. Если значение параметра totalWidth меньше длины вызывающей строки, то возвращается копия неизмененной вызывающей строки.

Для заполнения строки справа служат следующие формы метода PadRight().

public string PadRight(int totalWidth)

public string PadRight(int totalWidth, char paddingChar)

В первой форме метода PadLeft() вводятся пробелы с правой стороны вызывающей строки, чтобы ее общая длина стала равной значению параметра totalWidth.

А во второй форме данного метода символы, обозначаемые параметром paddingChar, вводятся с правой стороны вызывающей строки, чтобы ее общая длина стала равной значению параметра totalWidth.B обеих формах возвращается получающаяся в итоге строка. Если значение параметра totalWidth меньше длины вызывающей строки, то возвращается копия неизмененной вызывающей строки.

В приведенном ниже примере программы демонстрируются обрезка и заполнение строк.

// Пример обрезки и заполнения строк.

using System;

class TrimPadDemo {

  static void Main() {

    string str = "тест";

    Console.WriteLine("Исходная строка: " + str);

    // Заполнить строку пробелами слева,

    str = str.PadLeft(10);

    Console.WriteLine("|" + str + "|");

    // Заполнить строку пробелами справа,

    str = str.PadRight(20);

    Console.WriteLine("|" + str + "|");

    // Обрезать пробелы,

    str = str.Trim();

    Console.WriteLine("|" + str + "|");

    // Заполнить строку символами # слева,

    str = str.PadLeft(10, '#');

    Console.WriteLine ("|" + str + "|");

    // Заполнить строку символами # справа,

    str = str.PadRight(20, '#');

    Console.WriteLine("|" + str + "|");

    // Обрезать символы #.

    str = str.Trim('#');

    Console.WriteLine("|" + str + "|");

  }

}

Эта программа дает следующий результат.

Исходная строка: тест

|    тест|

|    тест    |

|тест|

|######тест|

|######тест##########|

|тест|

Вставка, удаление и замена строк

Для вставки одной строки в другую служит приведенный ниже метод Insert():

public string Insert(int startlndex, string value)

где value обозначает строку, вставляемую в вызывающую строку по индексу startlndex. Метод возвращает получившуюся в итоге строку.

Для удаления части строки служит метод Remove(). Ниже приведены две его формы.

Перейти на страницу:

Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


C# 4.0: полное руководство отзывы

Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*