Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Работа со строками

Типы данных

 

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

int a = 1;string s = "Hello";

C# поддерживает следующие встроенные типы данных.

Тип данных Диапазон
byte 0.. 255
sbyte -128.. 127
short -32 768.. 32 767
ushort 0.. 65 535
int -2 147 483 648.. 2 147 483 647
uint 0.. 4 294 967 295
long -9 223 372 036 854 775 808.. 9 223 372 036 854 775 807
ulong 0.. 18 446 744 073 709 551 615
float -3,402823e38.. -3,402823e38..
double -1,79769313486232e308.. 1,79769313486232e308
decimal -79228162514264337593543950335.. 79228162514264337593543950335
char Символ Юникода.
string Строка символов Юникода.
bool true или false
object Объект.

Можно также определять собственные типы данных, используя Классы, Перечисления или Структуры.

 

Преобразование типов данных

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

Пример.

 

int i = 0;double d = 0; i = 10;d = i; // неявное преобразование d = 3.5;i = (int) d; // явное преобразование

i = Convert.ToInt32(d);

 

Числовой тип можно преобразовать в строковой следующим образом:

 

double a=3.5;

int b=10;

string c;

 

c = b.ToString();

c = Convert.ToString(a);

 

Строковой тип можно преобразовать в числовой так:

 

b = Convert.ToInt32(c);

a = Convert.ToDouble(c);

или так:

int.TryParse(c, out b);

double.TryParse(c, out a);

 

Используя метод TryParshe, можно отслеживать, успешно ли произошло преобразование, так как не все строки можно преобразовать в числа. Если успешно, то возвращается значение true, в противном случае – false.

Пример.

 

if (double.TryParse(c, out a)== false) Console.WriteLine("Ошибка");

 

 

В System.String предоставляется набор методов для определения длины символьных данных, поиска подстроки в текущей строке, преобразования символов из верхнего регистра в нижний и наоборот, и т.д. В следующей таблице перечислены некоторые наиболее интересные члены этого класса:

Методы работы со строками
Метод Назначение
Compare() Статический метод, который позволяет сравнить две строки
Concat() Комбинирует отдельные экземпляры строк в одну строку (конкатенация)
Contains() Метод, который позволяет определить, содержится ли в строке определенная подстрока
СоруТо() Копирует определенное число символов, начиная с определенной позиции в новый экземпляр массива
Equals() Метод, который позволяет проверить, содержатся ли в двух строковых объектах идентичные символьные данные
Format() Статический метод, позволяющий сформатировать строку с использованием других элементарных типов данных (например, числовых данных или других строк) и обозначений типа {0}
IndexOf() Находит первое вхождение заданной подстроки или символа в строке
IndexOfAny() Находит первое вхождение в строку любого символа из набора
Insert() Метод, который позволяет вставить строку внутрь другой определенной строки
Join() Строит новую строку, комбинируя содержимое массива строк
LastlndexOf() То же, что IndexOf, но находит последнее вхождение
LastlndexOfAny() To же, что IndexOfAny, но находит последнее вхождение
PadLeft() PadRight() Методы, которые позволяют дополнить строку какими-то символами, соответственно, справа или слева
Remove() Replace() Методы, которые позволяют получить копию строки с соответствующими изменениями (удалением или заменой символов)
Split() Метод, возвращающий массив string с присутствующими в данном экземпляре подстроками внутри, которые отделяются друг от друга элементами из указанного массива char или string
Substring() Извлекает подстроку, начиная с определенной позиции строки
ToUpper () ToLower() Методы, которые позволяют создавать копию текущей строки в формате, соответственно, верхнего или нижнего регистра
Trim() Метод, который позволяет удалять все вхождения определенного набора символов с начала и конца текущей строки

 

Пример следующей программы использует несколько из вышеуказанных методов:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

// Сравним первые две строки

string s1 = "это строка";

string s2 = "это текст, а это строка";

 

if (String.CompareOrdinal(s1, s2)!= 0)

Console.WriteLine("Строки s1 и s2 не равны");

 

if (String.Compare(s1, 0, s2, 13, 10, true) == 0)

Console.WriteLine("При этом в них есть одинаковый текст");

 

// Конкатенация строк

Console.WriteLine(String.Concat("\n" + "Один, два ","три, четыре"));

 

// Поиск в строке

// Первое вхождение подстроки

if (s2.IndexOf("это")!= -1)

Console.WriteLine("Слово \"это\" найдено в строке, оно "+

"находится на: {0} позиции", s1.IndexOf("это"));

 

// Последнее вхождение подстроки

if (s2.LastIndexOf("это")!= -1)

Console.WriteLine("Последнее вхождение слова \"это\" находится на {0} позиции", s2.LastIndexOf("это"));

 

// Поиск из массива символов

char[] myCh = {'Ы','х','т'};

if (s2.IndexOfAny(myCh)!= -1)

Console.WriteLine("Один из символов из массива ch "+

"найден в текущей строке на позиции {0}", s2.IndexOfAny(myCh));

 

// Определяем начинается ли строка с заданной подстроки

if (s2.StartsWith("это текст") == true)

Console.WriteLine("Подстрока найдена!");

 

// Определяем содержится ли в строке подстрока

// на примере определения ОС пользователя

string myOS = Environment.OSVersion.ToString();

if (myOS.Contains("NT 5.1"))

Console.WriteLine("Ваша операционная система Windows XP");

 

Console.ReadLine();

}

 

}

}

 

Основные конструкции языка С#

 

<== предыдущая лекция | следующая лекция ==>
События | Оператор IF
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 502; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.