
- •Язык c# и структура простой программы
- •Что такое .Net Framework
- •Что такое с#
- •Создание первой программы на с#
- •Пространство имен System
- •С# как язык Объектно-Ориентированного Программирования (ооп)
- •Состав и назначение файлов проекта
- •Структура сборки
- •Элементы языка c#
- •Базовый синтаксис с#
- •Переменные
- •Числа без знака
- •Числа со знаком
- •Числа для финансистов
- •Текстовые символы
- •Логический тип данных
- •Литералы с плавающей точкой
- •Символьные литералы
- •Строковые литералы
- •Выражения и операторы с#
- •Инициализация переменных и оператор присваивания
- •Значение в левой части
- •Ввод данных с консоли
- •Математические операторы
- •Вычисление остатка при целочисленном делении
- •Унарные операторы
- •Унарное логическое отрицание
- •Составные операторы
- •Поразрядные операторы
- •Поразрядное логическое и
- •Поразрядное логическое или
- •Поразрядное логическое исключающее или
- •Унарная поразрядная операция дополнения
- •Поразрядный сдвиг
- •Пример использования поразрядных операторов
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Исполнители алгоритмов
- •Исполнитель Чертежник
- •Исполнитель Робот
- •Компьютер как формальный исполнитель алгоритмов
- •Блок-схема
- •Псевдокод
- •Необходимые свойства алгоритма
- •Понятие о временной сложности алгоритма
- •Примеры
- •Правила для определения сложности
- •Тернарный условный оператор
- •Применение логических операций
- •Конструкция выбора
- •Примеры применения оператора выбора
- •Объединение меток case
- •Пропущенный break
- •Пример программы: Простые числа
- •Пример обработки одномерного массива чисел
- •Использование генератора случайных данных
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Поиск элемента в массиве
- •Многомерные массивы
- •Базовые операции со строками
- •Методы типа string
- •Копирование и клонирование строк
- •Конкатенация строк
- •Извлечение подстроки
- •Вставка подстроки
- •Замена символов и строк
- •Удаление символов из строки
- •Удаление незначащих пробелов
- •Преобразование к верхнему и нижнему регистру
- •Выравнивание по левому и правому краю поля
- •Объединение массива строк
- •Разбор строки
- •Сравнение строк
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Выходные параметры
- •Область действия переменных
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Параметры функции Main()
- •Перегрузка функций
- •Перечислимый тип
- •Определение перечислимых типов
- •Структуры
- •Описание структур
- •Использование структур в качестве параметров функций
- •Использование структур в качестве возвращаемых значений функций
- •Функции структур
- •Файлы и потоки
- •Основные классы ввода и вывода
- •Классы для работы с потоками
- •Классы для работы с потоками текстовых символов
- •Работа с текстовыми файлами
Форматирование текстовых строк
Одна из важных задач, которую приходится решать программисту при разработке приложений любого типа, — форматирование текстовых строк. С помощью текстовых строк представляется не только символьная, но и числовая информация, такая, как номера заказов, количество каких-либо предметов, цены, дата, время и т. д.
Что касается С#, то сам по себе этот язык не содержит средств форматирования строк. Однако богатейшие возможности такого форматирования предоставляются программисту в рамках библиотеки классов Microsoft .NET Framework. Первые шаги в изучении средств форматирования обычно связаны с использованием метода Console.WriteLine, например, при выводе в консольное окно шестнадцатеричных чисел.
Аналогичное форматирование доступно при формировании текстовых строк методом String.Format, не имеющим никакого отношения к консольному выводу. Это часто необходимо для разработки программ с оконным пользовательским интерфейсом, т.к. там, как правило, необходимо перед выводом преобразовывать числовые значения в текстовые строки. Эта задача и решается при помощи метода String.Format. Полное и детальное рассмотрение возможностей форматирования различных типов данных выходит за рамки данного курса, но основные приемы и методы форматирования чисел достаточно просто могут быть продемонстрированы на примере целых чисел.
Чтобы преобразовать целочисленное значение в текстовую строку с форматированием при помощи метода String.Format, необходимо задать этому методу так называемую строку формата (format string), а также передать в качестве параметров одно или несколько преобразуемых значений. В ответ данный метод возвратит отформатированную строку.
Строка формата задается методу String.Format в следующем виде:
{N[,М][:formatString]}
Здесь число N задает номер преобразуемого аргумента, передаваемого методу String.Format в качестве параметра. Необязательное число М задает ширину области текстовой строки (в символах), внутри которой необходимо поместить цифры преобразуемого значения. Если это число отрицательное, цифры числа выравниваются по левой границе данной области, а если положительное — по правой границе области.
И, наконец, строка formatString задает коды форматирования, которые существуют для каждого типа данных. Для форматирования целых чисел используются эквивалентные коды форматирования d и D, для вывода в шестнадцатеричной кодировке – коды х и Х.
Рассмотрим программу, исходный текст которой представлен ниже. Эта программа демонстрирует применение различных способов форматирования для представления целых чисел в виде текстовых строк.
using System;
namespace StringFormat
{
class Program
{
static void Main(string[] args)
{
int iSignedNumber = 777;
string result;
result = String.Format("{0}", iSignedNumber);
Console.WriteLine(result);
result = String.Format("{0:x}", 0x23fabc);
Console.WriteLine(result);
result = String.Format("{0:X}", 0x23fabc);
Console.WriteLine(result);
result = String.Format("{0:d2}", iSignedNumber);
Console.WriteLine(result);
result = String.Format("{0:d8}", iSignedNumber);
Console.WriteLine(result);
result = String.Format("{0,5:d}", iSignedNumber);
Console.WriteLine(result);
result = String.Format("{0,-5:d}Этo счастливое число",
iSignedNumber);
Console.WriteLine(result);
Console.ReadLine();
}
}
}
Результат работы этой программы: