C# String
В C# вы можете использовать массивы символов для представления строк, однако более распространённая практика — использовать ключевое словоstringдля объявления строковой переменной. Ключевое слово string являетсяSystem.Stringпсевдонимом класса.
Создание объекта String
Вы можете создать строковый объект одним из следующих способов:
- Путем присваивания строки переменной типа String
- Путем использования конструктора класса String
- Путем использования оператора конкатенации строк ( + )
- Путем получения свойства или вызова метода, возвращающего строку
- Путем использования метода форматирования для преобразования значения или объекта в его строковое представление
Следующий пример демонстрирует это:
Пример
namespace StringApplication
{
class Program
{
static void Main(string[] args)
{
// String, конкатенация строк
string fname, lname;
fname = "Rowan";
lname = "Atkinson";
string fullname = fname + lname;
Console.WriteLine("Полное имя: {0}", fullname);
// Используя конструктор string
char[] letters = { 'H', 'e', 'l', 'l','o' };
string greetings = new string(letters);
Console.WriteLine("Приветствие: {0}", greetings);
// Метод возвращает строку
string[] sarray = { "Привет", "От", "Tutorials", "Point" };
string message = String.Join(" ", sarray);
Console.WriteLine("Сообщение: {0}", message);
// Метод форматирования, используемый для преобразования значений
DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
string chat = String.Format("Сообщение отправлено в {0:t} {0:D}",
ожидание);
Console.WriteLine("Message: {0}", chat);
Console.ReadKey() ;
}
}
}
Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:
Full Name: RowanAtkinson Greetings: Hello Message: Hello From Tutorials Point Message: Message sent at 17:58 on Wednesday, 10 October 2012
Свойства класса String
Класс String имеет следующие два свойства:
| Порядковый номер | Имя свойства и описание |
|---|---|
| 1 | Chars в текущем объектеStringизвлекает из объектаCharпо указанной позиции объекта. |
| 2 | Длина В текущем объектеStringполучает количество символов в объекте. |
Методы класса String
Класс String имеет много методов для управления строковыми объектами. В следующей таблице приведены некоторые из наиболее часто используемых методов:
| Порядковый номер | Имя метода и описание |
|---|---|
| 1 | public static int Compare(
string strA,
string strB
)
Сравнивает два указанных строковых объекта и возвращает целое число, указывающее их относительное положение в порядке сортировки. Этот метод учитывает регистр. |
| 2 | public static int Compare(
string strA,
string strB,
bool ignoreCase
)
Сравнивает два указанных строковых объекта и возвращает целое число, указывающее их относительное положение в порядке сортировки. Однако, если логический параметр имеет значение true, этот метод не учитывает регистр. |
| 3 | public static string Concat(
string str0,
string str1
)
Объединяет два строковых объекта. |
| 4 | public static string Concat(
string str0,
string str1,
string str2
)
Объединяет три строковых объекта. |
| 5 | public static string Concat(
string str0,
string str1,
string str2,
string str3
)
Объединяет четыре строковых объекта. |
| 6 | public bool Contains(
string value
)
Возвращает значение, указывающее, встречается ли указанная строка внутри данной строки. |
| 7 | public static string Copy(
string str
)
Создает новый объект String с тем же значением, что и указанная строка. |
| 8 | public void CopyTo(
sourceIndex,
[] destination,
destinationIndex,
count
)
Копирует указанное число символов из указанной позиции в объекте String в указанную позицию в массиве символов Unicode. |
| 9 | public bool EndsWith(
string value
)
Определяет, соответствует ли конец объекта String указанной строке. |
| 10 | public bool Equals(
string value
)
Определяет, имеет ли текущий объект String то же значение, что и указанный объект String. |
| 11 | public static bool Equals(
string a,
string b
)
Определяет, имеют ли два указанных объекта String одинаковое значение. |
| 12 | public static string Format(
string format,
Object arg0
)
Заменяет один или несколько элементов формата в указанной строке строковым представлением указанного объекта. |
| 13 | public int IndexOf(
char value
)
Возвращает отсчитываемый от нуля индекс первого вхождения указанного символа Unicode в текущей строке. |
| 14 | public int IndexOf(
string value
)
Возвращает индекс первого вхождения указанной строки в этом экземпляре, при этом индекс начинается с 0. |
| 15 | public int IndexOf(
char value,
int startIndex
)
Возвращает индекс первого вхождения указанного символа Unicode, начиная поиск с указанной позиции символа в этой строке, при этом индекс начинается с 0. |
| 16 | public int IndexOf(
string value,
int startIndex
)
Возвращает индекс первого вхождения указанной строки, начиная поиск с указанной позиции символа в этом экземпляре, при этом индекс начинается с 0. |
| 17 | public int IndexOfAny(
char[] anyOf
)
Возвращает индекс первого вхождения любого символа из указанного массива символов Unicode в этом экземпляре, при этом индекс начинается с 0. |
| 18 | public int IndexOfAny(
char[] anyOf,
int startIndex
)
Возвращает индекс первого вхождения любого символа из указанного массива символов Unicode, начиная поиск с указанной позиции символа в этом экземпляре, при этом индекс начинается с 0. |
| 19 | public string Insert(
int startIndex,
string value
)
Возвращает новую строку, в которую указанная строка вставлена в указанной позиции индекса текущего строкового объекта. |
| 20 | public static bool IsNullOrEmpty(
string value
)
Указывает, является ли указанная строка null или пустой строкой. |
| 21 | public static string Join(
string separator,
string[] value
)
Объединяет все элементы в строковом массиве, используя указанный разделитель для разделения каждого элемента. |
| 22 | public static string Join(
string separator,
string[] value,
int startIndex,
int count
)
Объединяет указанные элементы, начиная с указанной позиции в строковом массиве, используя указанный разделитель для разделения каждого элемента. |
| 23 | public int LastIndexOf(
char value
)
Возвращает отсчитываемый от нуля индекс последнего вхождения указанного символа Unicode в текущем строковом объекте. |
| 24 | public int LastIndexOf(
string value
)
Возвращает отсчитываемый от нуля индекс последнего вхождения указанной строки в текущем строковом объекте. |
| 25 | public string Remove(
int startIndex
)
Удаляет все символы в текущем экземпляре, начиная с указанной позиции и до последней позиции, и возвращает строку. |
| 26 | public string Remove(
int startIndex,
int count
)
Удаляет указанное число символов с указанной позиции в текущей строке и возвращает строку. |
| 27 | public string Replace(
char oldChar,
char newChar
)
Заменяет все указанные символы Unicode в текущем строковом объекте другим указанным символом Unicode и возвращает новую строку. |
| 28 | public string Replace(
string oldValue,
string newValue
)
Заменяет все указанные строки в текущем строковом объекте другой указанной строкой и возвращает новую строку. |
| 29 | public string[] Split(
params char[] separator
)
Возвращает массив строк, содержащий подстроки текущего строкового объекта, разделённые элементами указанного массива символов Unicode. |
| 30 | public string[] Split(
char[] separator,
int count
)
Возвращает массив строк, содержащий подстроки текущего строкового объекта, разделённые элементами указанного массива символов Unicode. Параметр int задаёт максимальное число возвращаемых подстрок. |
| 31 | public bool StartsWith(
string value
)
Определяет, совпадает ли начало экземпляра строки с указанной строкой. |
| 32 | public char[] ToCharArray() Возвращает массив символов Юникода, содержащий все символы в текущем строковом объекте. |
| 33 | public char[] ToCharArray(
int startIndex,
int length
)
Возвращает массив символов Юникода, содержащий все символы текущего строкового объекта, начиная с указанного индекса и до указанной длины. |
| 34 | public string ToLower() Преобразует строку в нижний регистр и возвращает её. |
| 35 | public string ToUpper() Преобразует строку в верхний регистр и возвращает её. |
| 36 | public string Trim() Удаляет все начальные и конечные пробельные символы из текущего объекта String. |
Приведённый выше список методов не является исчерпывающим; посетите библиотеку MSDN, чтобы ознакомиться с полным списком методов и конструкторов класса String.
Пример
В следующем примере демонстрируются некоторые из методов, упомянутых выше:
Сравнение строк
Пример
namespace StringApplication
{
class StringProg
{
static void Main(string[] args)
{
string str1 = "This is test";
string str2 = "This is text";
if (String.Compare(str1, str2) == 0)
{
Console.WriteLine(str1 + " and " + str2 + " are equal.");
}
else
{
Console.WriteLine(str1 + " and " + str2 + " are not equal.");
}
Console.ReadKey() ;
}
}
}
Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:
This is test and This is text are not equal.
Строка содержит строку:
Пример
namespace StringApplication
{
class StringProg
{
static void Main(string[] args)
{
string str = "This is test";
if (str.Contains("test"))
{
Console.WriteLine("Последовательность 'test' найдена.");
}
Console.ReadKey() ;
}
}
}
Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:
The sequence 'test' was found.
Получить подстроку:
Пример
namespace StringApplication
{
class StringProg
{
static void Main(string[] args)
{
string str = "Прошлой ночью мне снился Сан-Педро";
Console.WriteLine(str);
string substr = str.Substring(23);
Console.WriteLine(substr);
Console.ReadKey() ;
}
}
}
Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:
Last night I dreamt of San Pedro San Pedro
Строка подключения:
Пример
namespace StringApplication
{
class StringProg
{
static void Main(string[] args)
{
string[] starray = new string[]{"Вниз по дороге ночи темны",
"И солнце светит каждый день на вершине горы",
"Я отправился в путешествие на парусном корабле",
"И когда я добрался до Ямайки",
"Я сделал остановку"};
string str = String.Join("\n", starray);
Console.WriteLine(str);
Console.ReadKey() ;
}
}
}
Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:
Down the way nights are dark And the sun shines daily on the mountain top I took a trip on a sailing ship And when I reached Jamaica I made a stopДругие расширения