Рейтинговые книги
Читем онлайн C# 4.0: полное руководство - Герберт Шилдт

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 47 48 49 50 51 52 53 54 55 ... 294

В приведенном ниже примере программы демонстрируется несколько операций со строками.

// Некоторые операции со строками.

using System;

using System.Globalization;

class StrOps {

  static void Main() {

    string strl = "Программировать в .NET лучше всего на С#.";

    string str2 = "Программировать в .NET лучше всего на С#.";

    string str3 = "Строки в C# весьма эффективны.";

    string strUp, strLow;

    int result, idx;

    Console.WriteLine("strl: " + strl);

    Console.WriteLine("Длина строки strl: " + strl.Length);

    // Создать варианты строки strl, набранные

    // прописными и строчными буквами.

    strLow = strl.ToLower(CultureInfo.CurrentCulture);

    strUp = strl.ToUpper (CultureInfo.CurrentCulture);

    Console.WriteLine("Вариант строки strl, " +

          "набранный строчными буквами:n " + strLow);

    Console.WriteLine("Вариант строки strl, " +

          "набранный прописными буквами:n " + strUp);

    Console.WriteLine();

    // Вывести строку strl посимвольно.

    Console.WriteLine("Вывод строки strl посимвольно.");

    for (int i=0; i < strl.Length; i++)

      Console.Write(strl[i]);

    Console.WriteLine("n");

    // Сравнить строки способом порядкового сравнения,

    if (strl == str2)

      Console.WriteLine("strl == str2");

    else

      Console.WriteLine("strl != str2");

    if (strl == str3)

      Console.WriteLine("strl == str3");

    else

      Console.WriteLine("strl != str3");

    // Сравнить строки с учетом культурной среды.

    result = string.Compare(str3, strl, StringComparison.CurrentCulture) ;

    if(result == 0)

      Console.WriteLine("Строки strl и str3 равны");

    else

      if (result < 0)

        Console.WriteLine("Строка strl-меньше строки str3");

      else

        Console.WriteLine("Строка strl больше строки str3");

    Console.WriteLine();

    // Присвоить новую строку переменной str2.

    str2 = "Один Два Три Один";

    // Поиск подстроки.

    idx = str2.IndexOf("Один", StringComparison.Ordinal);

    Console.WriteLine("Индекс первого вхождения подстроки <Один>: " + idx);

    idx = str2.LastIndexOf("Один", StringComparison.Ordinal);

    Console.WriteLine("Индекс последнего вхождения подстроки <0дин>: " + idx) ;

  }

}

При выполнении этой программы получается следующий результат.

strl: Программировать в .NET лучше всего на С#.

Длина строки str1: 41

Вариант строки str1, набранный строчными буквами:

       программировать в .net лучше всего на с#.

Вариант строки str1, набранный прописными буквами:

       программировать в .net лучше всего на с#.

Вывод строки str1 посимвольно.

Программировать в .NET лучше всего на С#.

str1 == str2

str1 != str3

Строка str1 больше строки str3

Индекс первого вхождения подстроки <0дин>: О

Индекс последнего вхождения подстроки <0дин>: 13

Прежде чем читать дальше,    обратите внимание    на то, что метод Compare() вызывается следующим образом.

result = string.Compare(strl, str3, StringComparison.CurrentCulture);

Как пояснялось ранее, метод Compare() объявляется как static, и поэтому он вызывается по имени, а не по экземпляру своего класса.

С помощью оператора + можно сцепить (т.е. объединить вместе) две строки. Например, в следующем фрагменте кода:

string str1 = "Один";

string str2 = "Два";

string str3 = "Три";

string  str4 = str1 + str2 + str3;

переменная str4 инициализируется строкой "ОдинДваТри".

И еще одно замечание: ключевое слово string является псевдонимом класса System. String, определенного в библиотеке классов для среды .NET Framework, т.е. оно устанавливает прямое соответствие с этим классом. Следовательно, поля и методы, определяемые типом string, относятся непосредственно к классу System.String, в который входят и многие другие компоненты. Подробнее о классе System.String речь пойдет в части II этой книги.

Массивы строк

Аналогично данным любого другого типа, строки могут быть организованы в массивы. Ниже приведен соответствующий пример.

// Продемонстрировать массивы строк.

using System;

class StringArrays {

  static void Main() {

    string[] str = { "Это", "очень", "простой", "тест." };

    Console.WriteLine("Исходный массив: ");

    for (int i=0; i < str.Length; i++)

      Console.Write(str[i] + " ");

    Console.WriteLine("n");

    // Изменить строку.

    str[1] = "тоже";

    str[3] = "до предела тест!";

    Console.WriteLine("Видоизмененный массив: ");

    for (int i=0; i < str.Length; i++)

      Console.Write(str[i] + " ");

  }

}

Вот какой результат дает выполнение приведенного выше кода.

Исходный массив:

Это очень простой тест.

Видоизмененный массив:

Это тоже простой до предела тест!

Рассмотрим более интересный пример. В приведенной ниже программе целое число выводится словами. Например, число 19 выводится словами "один девять".

// Вывести отдельные цифры целого числа словами, using System;

class ConvertDigitsToWords {

  static void Main() {

    int num;

    int nextdigit;

    int numdigits;

    int[] n = new int[20];

    string[] digits = { "нуль", "один", "два",

       "три", "четыре", "пять",

       "шесть", "семь", "восемь",

       "девять" };

    num =1908;

    Console.WriteLine("Число: " + num);

    Console.Write("Число словами: ");

    nextdigit = 0; numdigits = 0;

    // Получить отдельные цифры и сохранить их в массиве п.

    // Эти цифры сохраняются в обратном порядке,

    do {

      nextdigit = num % 10;

      n[numdigits] = nextdigit;

      numdigits++;

      num = num /10;

    } while(num > 0);

    numdigits--;

    // Вывести полученные слова.

    for( ; numdigits >= 0; numdigits--)

      Console.Write(digits[n[numdigits]] + " ");

    Console.WriteLine() ;

  }

}

Выполнение этой программы приводит к следующему результату.

Число: 1908

Число словами: один девять нуль восемь

В данной программе использован массив строк digits для хранения словесных обозначений цифр от 0 до 9. По ходу выполнения программы целое число преобразуется в слова. Для этого сначала получаются отдельные цифры числа, а затем они сохраняются в обратном порядке следования в массиве n типа int. После этого выполняется циклический опрос массива n в обратном порядке. При этом каждое целое значение из массива n служит в качестве индекса, указывающего на слова, соответствующие полученным цифрам числа и выводимые как строки.

1 ... 47 48 49 50 51 52 53 54 55 ... 294
На этой странице вы можете бесплатно читать книгу C# 4.0: полное руководство - Герберт Шилдт бесплатно.
Похожие на C# 4.0: полное руководство - Герберт Шилдт книги

Оставить комментарий