Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Строки в си шарп

Обучение C#

Формула программиста

Работая с этим сайтом, Вы даете согласие на использование файлов Cookie.

Класс String для работы со строками

Инициализация строк

Для инициализации символьных строк используются строковые литералы, то есть последовательности символов, заключенные в двойные кавычки. Кроме символов строковый литерал может содержать Escape-последовательности – специальные символы, которые начинаются с обратного слеша ( ), после которого следует обозначение символа.
Перечень основных Escape-последовательностей приведен в таблице

Escape-последовательностьЗначение
aЗвонок (предупреждение)
bУдаление предыдущего символа
fПеревод страницы
nНовая строка
rВозврат каретки
tГоризонтальная табуляция
vВертикальная табуляция
Одиночная кавычка
«Двойная кавычка
\Обратный слеш
?Вопросительный знак
xhhhhСимвол Юникода в шестнадцатеричном формате, где hhhh – собственно код символа
uddddСимвол Юникода (dddd)

Escape-последовательности используются, например, для перевода строки или отступа в виде символа табуляции.
Если необходимо задать строку без Escape-последовательностей, то можно применить буквальный строковый литерал, обозначаемый префиксом @ , после которого размещается неизменяемая последовательность символов в двойных кавычках. Такой литерал может размещаться в коде на нескольких строчках, и это размещение сохранится при выводе.
Примеры инициализации объектов типа string .

Кроме того, при формировании строк очень часто используется перегруженный оператор + , который осуществляет слияние строк:

Класс string содержит ряд конструкторов для инициализации строк, которые позволяют сформировать строку из массива символов типа char или его части.
Также можно сформировать строку из последовательности одинаковых символов.

Основным свойством любой строки является свойство Length , которое позволяет получить количество символов в строке.

По сути строка представляет собой массив символов, обратиться к каждому из которых можно с использованием индекса этого элемента.

Кроме того, класс String обладает рядом методов, основные из которых будут рассмотрены ниже.

Сравнение и копирование строк

Метод Compare() является статическим методом класса String и позволяет посимвольно сравнить две строки или подстроки. Возвращаемое значение метода равно 0 в случае равенства строк. Пример использования этого метода:

Статический метод Copy() позволяет создать копию строки, указанной в качестве аргумента.
Для проверки, содержат ли строки одинаковые последовательности символов, может использоваться метод Equals() , имеющий как статический, так и нестатический вариант использования. Пример использования методов:

Изменение регистра букв в строке

Для изменения регистра букв, используемых в строке, можно использовать методы ToUpper() и ToLower() , приводящие все буквы строки соответственно в верхнему или нижнему регистру.

Работа с подстрокой в строке

Для формирования подстроки может использоваться метод Substring() , который формирует подстроку начиная с заданной позиции или начиная с заданной позиции указанной длины.

Кроме того, для работы с подстроками могут использоваться следующие методы:

  • Contains(подстрока) – проверяет, содержит ли данная строка подстроку, указанную в качестве аргумента, возвращает логическое значение true или false .
  • IndexOf(подстрока) – возвращает индекс первого вхождения подстроки в данную строку. Если вхождений нет, возвращается -1.
  • LastIndexOf(подстрока) – возвращает индекс последнего вхождения подстроки в данную строку. Если вхождений нет, возвращается -1.
  • Replace(подстрока1, подстрока2) – заменяет все вхождения подстроки1 подстрокой2.
  • StartsWith(подстрока) – проверяет, совпадает ли начало строки с указанной подстрокой.
  • EndsWith(подстрока) – проверяет, совпадает ли конец строки с указанной подстрокой.

Пример использования указанных методов приведен ниже

Удаление и добавление подстрок

Разделение и объединение строк

Для разделения строки на подстроки и сохранения их в массив используется метод Split() , в качестве аргумента которому передается символ-разделитель. По умолчанию в качестве символа разделителя используется пробел.
Для объединения строк в единую строку используется статический метод Join() , в качестве аргументов которому передаются строка-разделитель и массив строк, которые необходимо объединить через указанный разделитель.

Рассмотрим пример – посчитать количество слов во введенной строке.
Разделим строку на слова, посчитаем количество слов. Затем выведем массив слов и объединим слова снова в единую строку, используя в качестве разделителя строку » | » .

Однако если слова разделяются не одним, а несколькими пробелами, то количество элементов в массиве s2 будет больше, чем количество слов:

Метод Split() содержит перегрузку, позволяющую указать, что пустые строки из формируемого массива следует удалить – опция StringSplitOptions .RemoveEmptyEntries . Однако в этом случае в качестве разделителя необходимо указать массив символов или строк.

Читать еще:  Язык си void

Кроме того, для удаления начальных и конечных символов- разделителей из строки можно использовать метод Trim() .

Форматирование объектов

Класс String содержит статический метод Format( String , Object ) , который позволяет перевести указанный объект в строковое представление в соответствии с форматом, указанным в форме строки в качестве первого аргумента. Однако различные типы значений имеют различные форматы представления, и это – тема для отдельной статьи.

Закрепить использование строк Вы можете в разделе Строки курса Алгоритмика

Автор: Вставская Елена Владимировна

Начинаем практику по языку C#

Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.

Основатель проекта

Вебинары C#

+ Бесплатно, каждую субботу
+ Создание программ с нуля
+ Решение консольных задач

Видео-уроки

+ 300 практических видеоуроков
+ 400 интерактивных задач
+ Видео-решения и разбор

Миссия

Погружение в язык C#
Мотивация к изучению языка
Прокачка навыков программирования

Строки в C#: как написать программу без регулярных выражений

Регулярные выражения — боль, с которой приходится жить каждому разработчику. К счастью, C# даёт возможность их почти не использовать.

Программистам часто приходится работать со строками независимо от языка. Однако для этого не всегда есть хорошие инструменты, поэтому приходится прибегать к использованию регулярных выражений — а это не самое приятное занятие.

Исключение — язык C#, огромные возможности которого позволяют почти всегда спокойно без них обойтись.

Содержание статьи:

Пишет о разработке сайтов, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Как работать со строками в C#

Нужный функционал представляет класс string. С его помощью можно создавать строки и проводить различные операции.

//Создание обычной строки
//Текст должен находиться в двойных кавычках
string text = «Live long»;
string text1 = new String(«Text»);
string text2 = new String(‘O’, 5); //Создание строки, в которой будет 5 букв O: OOOOO
string text3 = new String(new char[] <'W','o','r','d'>); //Создание строки из массива
//Одинарные кавычки используются для символов
//char symbol = ‘a’;

Вот что получится, если вывести все эти значения. Чтобы сократить количество кода в статье, здесь и далее не используются операторы вывода:

Как складывать строки в C#

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

string textConcat = text + » and prosper!»; //Можно использовать оператор сложения
string textConcat = text.Concat(» and prosper!»); //Также можно использовать метод Concat()
//К строке можно добавлять данные других типов
int num = 5;
string numConcat = «Num: » + num;
bool boolVal = true;
string boolConcat = «Bool: » + boolVal;
//Чтобы присвоить переменной строкового типа данные другого типа, их нужно преобразовать в строку
//Для этого используйте метод ToString()
string toString = num.ToString();
//Вместо оператора сложения можно использовать интерполяцию
//Для этого поставьте символ $ перед открывающей кавычкой и укажите переменные внутри фигурных скобок
string dollarSymbol = $»Num: «;
Console.WriteLine(«Length: <0>«, textConcat.Length); //Длина строки

Вот что можно увидеть, если вывести это всё:

Экранирование кавычек и специальных символов в C#

Некоторые символы в строке могут запутать компилятор. Например, если попробовать в тексте использовать двойную кавычку, компилятор решит, что это конец строки.

Чтобы использовать такие символы, их нужно экранировать — для этого ставьте перед ними знак обратного слэша.

string singleQuote = «My name is Fred O’Connell.»; //Одинарные кавычки можно использовать
string doubleQuote = «He said: «Hello!»»; //Экранированные двойные кавычки
//Также слэши используются для вставки специальных символов. Например, переноса строки(n) или табуляции (t)
string newLine = «Hellonnew line!»;
//Чтобы использовать обратный слэш в тексте, его тоже нужно экранировать
string slash = «C:\Windows\»;
//Если перед строкой поставить символ @, то компилятор автоматически экранирует все специальные символы
string withoutSlash = @»C:Windows»;

Читать еще:  Strlen си реализация

Вот что получится, если вывести эти переменные:

Пустые строки в C#

Иногда нужно использовать пустую строку или проверить, есть ли текст в переменной.

//Создание пустой переменной строкового типа
string noValue;
string emptyString = string.Empty;
string nullString = null;
string quoteString = «»;
//Метод IsNullOrEmpty() позволяет проверить, есть ли что-нибудь в строке
if(string.IsNullOrEmpty(emptyString))
<
emptyString = «The string is null or empty!»;
>

Вот что будет выведено:

Поиск в C#

В C# можно найти позицию определенной подстроки или символа в тексте, проверить, с чего он начинается и чем кончается.

//Можно проверить, с чего начинается или чем кончается строка
string someText = «Some text»;
if(someText.StartsWith(«Some») && someText.EndsWith(«text»))
<
Console.WriteLine(true);
>

//Поиск положения определенного символа
string indexText = «Hello, World! Hello, Sunshine!»;

Console.WriteLine(indexText.IndexOf(‘,’)); //Поиск первого совпадения
Console.WriteLine(indexText.LastIndexOf(‘,’)); //Поиск последнего совпадения

Console.WriteLine(indexText.IndexOf(«Sunshine»)); //Можно искать индексы целых подстрок
Console.WriteLine(indexText.IndexOf(‘,’, 7)); //Можно указать начало поиска
Console.WriteLine(indexText.IndexOf(‘,’, 6, 5)); //Также можно указать количество символов, которые будут проверены
//Если искомое значение не будет найдено, будет возвращено значение –1

string[] sArray = indexText.Split(‘,’); //Создание массива подстрок из строки. В качестве аргумента принимается разделитель
foreach(string s in sArray)
<
Console.WriteLine(s);
>

Вот что будет выведено в результате работы такого кода:

Язык программирования C#

Язык С#. Символы и строки

В C# существуют два вида строковых констант (литерал):

  • обычные константы — строка символов, заключенная в кавычки string str= “d:\СП21\С#”;
  • @-константа — константа c предшествующим знаком @ string str= @ “d:СП21С#”;

В @-константах все символы трактуются в соответствии с их изображением, поэтому путь к файлу лучше задавать @-константой.

Класс Char

Char – символы в кодировке Unicode — хранятся в двух байтах

Методы класса Char

GetNumericValue

Возвращает числовое значение символа, если он является цифрой, и -1 в противном случае.

GetUnicodeCategory

Возвращает категорию Unicode-символа. В Unicode символы разделены на категории, например цифры (DecimalDigitNumber), римские цифры (LetterNumber), разделители строк (LineSeparator), буквы в нижнем регистре (LowercaseLetter) и т.д.

IsControl

Возвращает true, если символ является управляющим.

IsDigit

Возвращает true, если символ является десятичной цифрой.

IsLetter

Возвращает true, если символ является буквой.

IsLetterOrDigit

Возвращает true, если символ является буквой или десятичной цифрой.

IsLower

Возвращает true, если символ задан в нижнем регистре.

IsNumber

Возвращает true, если символ является числом (десятичным или шестнадцатеричным).

IsPunctuation

Возвращает true, если символ является знаком препинания.

IsSeparator

Возвращает true, если символ является разделителем.

IsUpper

Возвращает true, если символ задан в верхнем регистре.

IsWhiteSpace

Возвращает true, если символ является пробельным (пробел, перевод строки, возврат каретки).

Parse

Преобразует строку в символ (строка должна состоять из одного символа).

ToLower

Преобразует символ в нижний регистр

ToUpper

Преобразует символ в верхний регистр

Массив символов char []

В языке C# массив char [] — обычный массив:

  • не имеет завершающего нуля,
  • его нельзя инициализировать строкой символов

Преобразование строки в массив символов:

string hello = «Hello, World!»;

char[ ] str = hello.ToCharArray();

Класс String

  1. В классе String невозможно изменить содержимое строки или ее длину.
  2. При каждом изменении строки создается новый объект, а прежний превращается в мусор.
  3. Для работы со строками изменяемой длины и содержания используется класс StringBuilder

string str;

string world = «Мир«;

string str1 = new string(‘ ‘, 20);

Преобразование массива символов в строку:

char[ ] mch = < 'М', 'а', 'й', 'к', 'о', 'п' >;

string str2 = new string(mch);

Для строк определены следующие операции:

• присваивание (=);

• проверка на равенство (==);

• проверка на неравенство ( ! = ) ;

• обращение по индексу ( [ ] ) ;

• сцепление (конкатенация) строк ( + ) .

Несмотря на то, что строки являются ссылочным типом данных, на равенство и неравенство проверяются не ссылки, а значения строк! Строки равны, если имеют одинаковое количество символов и совпадают посимвольно.

Методы класса String

Length

определяет длину строки

Split

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

Equals

Возвращает true, если объекты имеют одну и ту же длину и состоят из одних и тех же символов

Читать еще:  Массивы си шарп

Compare

Сравнение двух строк в алфавитном порядке. Возвращает число: 0 – строки равны, больше 0 strA > strB и меньше 0 strA

EndsWith

Определяет, совпадает ли конец данного экземпляра строки с указанной строкой.

Contains

Возвращает значение, указывающее, равен ли данный экземпляр заданному объекту или значению типа String .

Replace

Возвращает новую строку, в которой все вхождения заданной строки заменены другой заданной строкой.

Возвращает копию этой строки, переведенную в верхний регистр

Удаляет все начальные и конечные знаки пробела из текущего объекта String .

Сцепляет два указанных экземпляра String .

Пример. Имеется строка символов.

str = «В ногах нет правды. На вкус и цвет товарища нет. На нет и суда нет.» +

«Нет дыму без огня. Нет худа без добра. Там хорошо, где нас нет.»;

  1. Общее кол-во символов
  2. Количество предложений
  3. Количество слов
  4. Подсчитать количество слов «нет»
  5. Вывести все слова закаливающиеся символом «а»
  6. Проверить, имеется ли слово «дым» в тексте
  7. Выполнить замену в тексте слова “нет” на «не всегда нет»

Строки в си шарп

Двадцать вторая часть учебника по основам C# завершает начальное изучение функций манипулирования строками, предоставляемых классом String. В статье рассматриваются методы, доступные для исследования содержимого строк.

Часто необходимо узнать длину строки, например, для проверки ввода пользователя. Класс String предоставляет свойство Length, которое дает нам эту информацию. Свойство возвращает целое число, представляющее количество символов.

Примечание: свойство Length выполняется довольно быстро. При проверке строки на пустоту более эффективно проверять нулевую длину, чем сравнивать строковое значение со String.Empty или»».

Поиск позиции текста в строке

На одном из предыдущих уроков мы рассмотрели метод Substring, который позволяет извлекать символы из заданной позиции в строке. Обратное ему — указать ряд символов и определить позицию, в которой подстрока появляется в строке. Это может быть достигнуто с помощью методов IndexOf и LastIndexOf.

IndexOf принимает параметр, содержащий подстроку для поиска. Если она существует в основной строке, возвращается позиция первого вхождения. Эта позиция называется указателем: целое число, указывающее количество символов между началом строки и найденным текстом. Для начала строки этот индекс равен нулю. Если подстрока не находится в основной строке, метод возвращает -1.

LastIndexOf похож на IndexOf. Однако вместо возврата индекса первого вхождения поискового термина LastIndexOf возвращает позицию последнего вхождения.

Указание границ поиска

IndexOf и LastIndexOf могут быть ограничены с указанием начальной позицию для поиска. С IndexOf можно найти только вхождения указанной подстроки справа или справа от этой позиции. При использовании LastIndexOf находятся только соответствующие подстроки слева от этой позиции.

Поиск может быть ограничен третьим параметром. Этот параметр представляет собой целое число, указывающее максимальное количество символов, которые могут быть рассмотрены. Если совпадение не существует в диапазоне символов, то результат будет равен -1.

Простые проверки на содержание

IndexOf и LastIndexOf полезны при определении точного положения подстрок в строках. Однако, иногда достаточно просто знать, что там имеется такая подстрока. Класс String предоставляет несколько методов для выполнения этих тестов.

StartsWith и EndsWith

StartsWith и EndsWith позволяют определить, начинается или заканчивается строка определенной серией символов. Оба метода принимают аргумент, содержащий строку для поиска соответствия, а возвращают логическое значени. Эти методы учитывают регистр.

Contains метод из .NET 2.0

Последняя строковая функция, ркоторую мы рассмотрим на сегодняшнем уроке – это Contains. Введенный в версии 2.0 .NET framework, он работает аналогично StartsWith и EndsWith, но проверяет, существует ли указанный поисковый символ в любой позиции в основной строке.


Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

статьи IT, Уроки по си шарп, string, си шарп,, поиск позиции в строке

Ссылка на основную публикацию
Adblock
detector