Класс char - cимвол, заключенный в одинарные кавычки; - escape-последовательность, задающая код символа; - Unicode-последовательность, задающая Unicode-код символа. Статические методы и свойства класса Char
Класс char[]
public void TestCharArAndString() {
string hello = "Здравствуй, Мир!";
char[] strM1 = hello.ToCharArray();
PrintCharAr("strM1",strM1);
//копирование подстроки
char[] World = new char[3];
Array.Copy(strM1,12,World,0,3);
PrintCharAr("World“, World);
Console.WriteLine(CharArrayToString(World));
}
void PrintCharAr(string name, char[] ar) {
Console.WriteLine(name);
for(int i=0; i < ar.Length; i++)
Console.Write(ar[i]);
Console.WriteLine();
}
string CharArrayToString(char[] ar){
string result="";
for(int i = 0; i< ar.Length; i++) result += ar[i];
return(result);
}
Класс String
-
Конструкторы:
-
String(char ch, int iCount);
-
String(char[] ach);
-
String(char[] ach, int iStartlndex, int iCount);
-
public void TestDeclStrings(){
-
string world = "Мир";
-
//string s1 = new string(“Мир"); - ошибка
-
//string s2 = new string(); - ошибка
-
string s3 = new string('s',5);
-
char[] yes = "Yes".ToCharArray();
-
string stryes = new string(yes);
-
string strye = new string(yes,0,2);
-
}
Операции над строками
-
присваивание (=);
-
две операции проверки эквивалентности (= =) и (!=);
-
конкатенация или сцепление строк (+);
-
взятие индекса ([]).
-
public void TestOpers() {
-
string s1 ="ABC", s2 ="CDE";
-
string s3 = s1+s2;
-
bool b1 = (s1==s2);
-
char ch1 = s1[0], ch2=s2[0];
-
s2 = s1;
-
b1 = (s1!=s2);
-
ch2 = s2[0];
-
//Неизменяемые значения
-
s1= "Zenon";
-
//s1[0]='L'; - ошибка
-
}
Статические методы и свойства класса String
Динамические методы класса String
-
Копирование строки и подстроки
-
object Clone();
-
string Copy(string str);
-
string Substring(int iStartlndex);
-
string Substring(int iStartlndex, int ICount) ;
-
Преобразования строк
-
string ToUpper(CultureInfo ci);
-
string ToLower(CultureInfo ci);
-
Конкатенация строк
-
string Concat(string strl, string str2);
-
string Concat(string strl, string str2, string str3);
-
string Concat(string strl, string str2, string str3, string str4);
-
string Concat(params string[] astr);
-
Объединение строк
-
string Join(string strSeparator, string[] astr);
-
string Join(string strSeparator, string[] astr, int iStartlndex, int iCount);
-
Сравнение строк
-
bool Equals(string str);
-
bool Equals(object obj);
-
bool StartsWith(string str);
-
bool EndsWith(string str);
-
А вот результат лексического сравнения;
-
d < D < e < E < f < F
-
int CompareTo(string str2);
-
int CompareTo(object obj2);
-
int Compare(string str1, string str2);
-
int Compare(string str1, string str2, bool blgnoreCase);
-
int Compare(string str1, string str2, bool blgnoreCase, Culturelnfo ci);
-
int Compare(string str1, int iStartlndexl, string str2, int iStartIndex2, int iCount);
-
int Compare(string str1, int iStartlndexl, string str2, int iStartIndex2, int iCount, bool blgnoreCase);
-
Вот результат числового сравнения некоторых символов:
-
D < E < F < d < e < f
-
int CompareOrdinal(string str1, string str2);
-
int CompareOrdinal(string str1, int iStartlndexl, string str2, int iStartIndex2, int iCount);
-
int Compare(string str1, int iStartlndexl, string str2, int iStartIndex2, int iCount, bool blgnoreCase, Culturelnfo ci);
-
Поиск в строках
-
int IndexOf(char ch);
-
int IndexOf(char ch, int iStartIndex);
-
int IndexOf(char ch, int iStartlndex, int iCount);
-
int IndexOf(string str);
-
int IndexOf(string str, int iStartlndex);
-
int IndexOf(string str, int iStartlndex, int iCount);
-
int LastlndexOf(char ch);
-
int LastlndexOf(char ch, int iStartlndex);
-
int LastlndexOf(char ch, int iStartlndex. int iCount);
-
int LastlndexOf(string str);
-
int LastlndexOf(string str, int iStartlndex);
-
int LastlndexOf(string str, int iStartlndex, int iCount);
-
int IndexOfAny(char[] ach);
-
int IndexOfAny(char[] ach, int iStartlndex);
-
int IndexOfAny(char[] ach, int iStartlndex, int iCount);
-
int LastIndexOfAny(char[] ach);
-
int LastIndexOfAny(char[] ach, int iStartlndex);
-
int LastIndexOfAny(char[] ach, int iStartlndex, int iCount);
-
Отсечение и заполнение
-
string Trim();
-
string Trim(params char[] ach);
-
string TrimStart(params char[] ach);
-
string TrimEnd(params char[] ach);
-
str.Trim(‘ ', '-', '_'};
-
string PadLeft(int iTotalLength);
-
string PadLeft(int iTotalLength, char ch);
-
string PadRight(int iTotalLength);
-
string PadRight(int iTotalLength, char ch);
-
Манипуляции со строками
-
string Insert(int iIndex, string strInsert);
-
string Remove(int iIndex, int iCount);
-
string Replace(char chOld, char chNew);
-
string Replace(string strOld, string strNew);
-
Разбиение строк на массив
-
string[] Split(params char[] achSeparators);
-
string[] Split(params char[] achSeparators, int IReturnCount);
-
Форматирование строк
-
string Format(string strFormat, object obj0);
-
string Format(string strFormat, object obj0, object objl);
-
string Format(string strFormat, object obj0, object obj1, object obj2);
-
string Format{string strFormat, params object[] aobj);
-
string str = String.Format("The sum of {0} and {1} is {2}", 2, 3, 2 + 3);
-
//возвращает строку "The sum of 2 and 3 is 5»
-
{N [,M [:<коды_форматирования>]]}
-
Сортировка в массивах строк
-
Применяют метод int CompareTo(object obj):
-
void Sort(Array агг);
-
void Sort(Array агг, int iStartlndex, int iCount);
-
Применяют метод int Compare(object objl, object obj2);
-
void Sort(Array агг, IComparer comp);
-
void Sort(Array агг, int iStartlndex, int iCount, IComparer comp);
-
void Sort(Array arrKeys, Array arrltems, IComparer comp);
-
void Sort(Array arrKeys, Array arrltems, int iStartlndex, iCount, IComparer comp);
-
Поиск в массивах строк
-
int BinarySearch(Array агг, object obj);
-
int BinarySearch(Array агг, int iStartlndex, int iCount, object obj);
-
int BinarySearch(Array агг, object obj, IComparer comp);
-
int BinarySearch(Array агг, int iStartlndex, int iCount, object obj, IComparer comp);
public void TestSplitAndJoin(){
string txt = "А это пшеница, которая в темном чулане хранится,"
+" в доме, который построил Джек!";
Console.WriteLine("Разделение текста на простые предложения:");
string[] SimpleSentences, Words;
SimpleSentences = txt.Split(','); // метод сам создает массив
for(int i=0;i< SimpleSentences.Length; i++)
Console.WriteLine("SimpleSentences[{0}]= {1}", i, SimpleSentences[i]);
string txtjoin = string.Join(",",SimpleSentences);
Console.WriteLine("txtjoin={0}", txtjoin);
Words = txt.Split(',', ' ');
for(int i=0;i< Words.Length; i++)
Console.WriteLine("Words[{0}]= {1}",i, Words[i]);
txtjoin = string.Join(" ",Words);
Console.WriteLine("txtjoin={0}", txtjoin);
}
Класс StringBuilder
-
using System.Text;
-
Конструкторы:
-
public StringBuilder ();
-
public StringBuilder (string str, int cap).
-
str задает строку инициализации, cap - емкость объекта;
-
public StringBuilder (int curcap, int maxcap).
-
curcap и maxcap задают начальную и максимальную емкость объекта;
-
public StringBuilder (string str, int start, int len, int cap).
-
str, start, len задают строку инициализации, cap - емкость объекта.
-
свойство Capacity - возвращает или устанавливает текущую емкость буфера;
-
свойство MaxCapacity - возвращает максимальную емкость буфера;
-
метод int EnsureCapacity (int capacity) - позволяет увеличить емкость буфера.
static void Main(string[] args) {
StringBuilder txtbuild = new StringBuilder();
StringBuilder strbuild = new StringBuilder("Hello",2000);
Console.WriteLine("curvol1= {0}", txtbuild.Capacity);
Console.WriteLine("curvol2= {0}", strbuild.Capacity);
Console.WriteLine("maxvol1= {0}", txtbuild.MaxCapacity);
Console.WriteLine("maxvol2= {0}", strbuild.MaxCapacity);
int sure1 = txtbuild.EnsureCapacity(100);
int sure2 = strbuild.EnsureCapacity(100);
Console.WriteLine("sure1= {0}", sure1);
Console.WriteLine("sure2= {0}", sure2);
Console.WriteLine("curvol2= {0}", strbuild.Capacity);
//strbuild.Capacity = 3; ошибка! попытка установить емкость меньше длины строки
strbuild.Capacity = 256; //так можно!
Console.WriteLine("curvol2= {0}", strbuild.Capacity);
//увеличим строку – емкость автоматически увеличится
int len = strbuild.Length;
strbuild.Append(strbuild.ToString());
Console.WriteLine("curvol1= {0}", strbuild.Capacity);
strbuild.Remove(len, len);
//уменьшим строку
Console.WriteLine("curvol1= {0}", strbuild.Capacity);
}
Операции над строками StringBuilder и основные методы
-
присваивание (=);
-
две операции проверки эквивалентности (= =) и (!=);
-
взятие индекса ([]).
-
public StringBuilder Append (<объект>) - к строке присоединяется строка, полученная из объекта, который передан методу в качестве параметра.
-
public StringBuilder Insert (int location,<объект>) - метод вставляет строку, полученную из объекта, в позицию, указанную параметром location.
-
public StringBuilder Remove (int start, int len) - метод удаляет подстроку длины len, начинающуюся с позиции start.
-
public StringBuilder Replace (string str1,string str2) - все вхождения подстроки str1 заменяются на строку str2.
-
public StringBuilder AppendFormat (<строка форматов>, <объекты>).
StringBuilder strbuild = new StringBuilder();
string str = "это это не ";
strbuild.Append(str);
strbuild.Append(true);
strbuild.Insert(4,false);
strbuild.Insert(0,"2*2=5 - ");
Console.WriteLine(strbuild);
string txt = "А это пшеница, которая в темном чулане хранится