В C# вы можете использовать строки как массив символов, однако более распространенной практикой является использование string ключевое слово для объявления строковой переменной. Ключевое слово string является псевдонимом для System.String. класс.
Создание строкового объекта
Вы можете создать строковый объект, используя один из следующих методов —
Присвоив строковый литерал строковой переменной
С помощью конструктора класса String
С помощью оператора конкатенации строк (+)
Извлекая свойство или вызывая метод, возвращающий строку
Путем вызова метода форматирования для преобразования значения или объекта в его строковое представление
Следующий пример демонстрирует это —
using System;
namespace StringApplication {
class Program {
static void Main(string[] args) {
//from string literal and string concatenation
string fname, lname;
fname = "Rowan";
lname = "Atkinson";
char []letters= { 'H', 'e', 'l', 'l','o' };
string [] sarray={ "Hello", "From", "Tutorials", "Point" };
string fullname = fname + lname;
Console.WriteLine("Full Name: {0}", fullname);
//by using string constructor { 'H', 'e', 'l', 'l','o' };
string greetings = new string(letters);
Console.WriteLine("Greetings: {0}", greetings);
//methods returning string { "Hello", "From", "Tutorials", "Point" };
string message = String.Join(" ", sarray);
Console.WriteLine("Message: {0}", message);
//formatting method to convert a value
DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
string chat = String.Format("Message sent at {0:t} on {0:D}", waiting);
Console.WriteLine("Message: {0}", chat);
}
}
}
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
Full Name: RowanAtkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012
Свойства класса String
Класс String имеет следующие два свойства —
Серийный номер
Свойство и описание
1
<тд>
Символы
Получает Char объект в указанной позиции в текущей String объект.
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.
Возвращает значение, указывающее, встречается ли указанный объект String в этой строке.
7
<тд>
публичная статическая строка Copy(string str)
Создает новый объект String с тем же значением, что и указанная строка.
8
<тд>
public void CopyTo(int sourceIndex, char[] target, int destinationIndex, int count)
Копирует указанное количество символов из указанной позиции объекта String в указанную позицию в массиве символов Юникода.
9
<тд>
public bool EndsWith(string value)
Определяет, соответствует ли конец строкового объекта указанной строке.
10
<тд>
public bool Equals(строковое значение)
Определяет, имеют ли текущий объект String и указанный объект String одно и то же значение.
11
<тд>
public static bool Equals(string a, string b)
Определяет, имеют ли два указанных объекта String одинаковое значение.
12
<тд>
формат общедоступной статической строки (формат строки, объект arg0)
Заменяет один или несколько элементов формата в указанной строке строковым представлением указанного объекта.
13
<тд>
public int IndexOf(символьное значение)
Возвращает отсчитываемый от нуля индекс первого вхождения указанного символа Юникода в текущей строке.
14
<тд>
public int IndexOf(строковое значение)
Возвращает отсчитываемый от нуля индекс первого вхождения указанной строки в данном экземпляре.
15
<тд>
public int IndexOf(значение char, int startIndex)
Возвращает отсчитываемый от нуля индекс первого вхождения указанного символа Unicode в этой строке, начиная поиск с указанной позиции символа.
16
<тд>
public int IndexOf(строковое значение, int startIndex)
Возвращает отсчитываемый от нуля индекс первого вхождения указанной строки в данном экземпляре, начиная поиск с указанной позиции символа.
17
<тд>
public int IndexOfAny(char[] anyOf)
Возвращает отсчитываемый от нуля индекс первого вхождения в данном экземпляре любого символа в указанном массиве символов Юникода.
18
<тд>
public int IndexOfAny(char[] anyOf, int startIndex)
Возвращает отсчитываемый от нуля индекс первого вхождения в данном экземпляре любого символа в указанном массиве символов Юникода, начиная поиск с указанной позиции символа.
Заменяет все вхождения указанной строки в текущем строковом объекте указанной строкой и возвращает новую строку.
29
<тд>
public string[] Split(params char[] separator)
Возвращает массив строк, содержащий подстроки в текущем строковом объекте, разделенные элементами заданного массива символов Unicode.
30
<тд>
public string[] Split(char[] separator, int count)
Возвращает массив строк, содержащий подстроки в текущем строковом объекте, разделенные элементами заданного массива символов Юникода. Параметр int указывает максимальное количество возвращаемых подстрок.
31
<тд>
public bool StartsWith(строковое значение)
Определяет, соответствует ли начало этого экземпляра строки указанной строке.
32
<тд>
общедоступный символ[] ToCharArray()
Возвращает массив символов Unicode со всеми символами в текущем строковом объекте.
33
<тд>
public char[] ToCharArray(int startIndex, int length)
Возвращает массив символов Unicode со всеми символами в текущем строковом объекте, начиная с указанного индекса и до указанной длины.
34
<тд>
общедоступная строка ToLower()
Возвращает копию этой строки, преобразованную в нижний регистр.
35
<тд>
открытая строка ToUpper()
Возвращает копию этой строки, преобразованную в верхний регистр.
36
<тд>
Обрезка общедоступной строки()
Удаляет все начальные и конечные пробельные символы из текущего объекта String.
Полный список методов и конструкторов классов String можно найти в библиотеке MSDN.
Примеры
В следующем примере демонстрируются некоторые из упомянутых выше методов —
Сравнение строк
using System;
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.
Строка содержит строку
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str = "This is test";
if (str.Contains("test")) {
Console.WriteLine("The sequence 'test' was found.");
}
Console.ReadKey() ;
}
}
}
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
The sequence 'test' was found.
Получение подстроки
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str = "Last night I dreamt of San Pedro";
Console.WriteLine(str);
string substr = str.Substring(23);
Console.WriteLine(substr);
}
}
}
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
San Pedro
Соединение строк
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string[] starray = new string[]{"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"};
string str = String.Join("\n", starray);
Console.WriteLine(str);
}
}
}
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
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