static void Main(string[] args) { char[] hello = { 'H', 'e', 'l', 'l', 'o', ',' }; //инициализация экземпляров MyString разными способами MyString ex1 = new MyString(hello); MyString ex2 = new MyString(" world"); MyString ex3 = "!!!"; //вывод на экран Console.WriteLine("ex1 = {0}", ex1); Console.WriteLine("ex2 = {0}", ex2); Console.WriteLine("ex3 = {0}", ex3); //конкатенация MyString res = ex1 + ex2 + ex3; Console.WriteLine("ex1 + ex2 + ex3 = {0}", res); //обращение к элементу по индексу int i; Console.Write("Введите номер символа который вы хотите изменить (отсчёт с нуля): "); while (int.TryParse(Console.ReadLine(), out i) == false || i < 0 && i > res.Length) Console.Write("Неверный ввод. Введите неотрицательное целое число меньше {0}: ", res.Length); Console.Write("Введите символ, на который вы хотите заменить: "); char c; while (char.TryParse(Console.ReadLine(), out c) == false) Console.Write("Неверный ввод. Введите один символ: "); res[i] = c; Console.WriteLine(res); Console.ReadKey(); }
static void Main(string[] args) { MyString firstString = new MyString("Hello my dear friend"); MyString secondString = new MyString("Hi my dear friend"); if (firstString.Equals(secondString)) { Console.WriteLine("Lines are equal"); } if (firstString != secondString) { Console.WriteLine("Lines are not equal"); } firstString += "! How are you?"; Console.WriteLine(firstString.ToString()); firstString -= "How"; Console.WriteLine(firstString.ToString()); Console.ReadKey(); }
static void Main(string[] args) { MyString myStringA = new MyString("ПРивет"); MyString myStringB = new MyString("ПРивет"); if (myStringA == myStringB) { Console.WriteLine("Строки равны."); } if (myStringA != myStringB) { Console.WriteLine("Строки не равны."); } myStringA += "123"; Console.WriteLine(myStringA.ToString()); myStringA -= "12"; Console.WriteLine(myStringA.ToString()); Console.ReadKey(); }
//перегрузка методов Equals GetHashCode и ToString public override bool Equals(object obj) { MyString S = obj as MyString; if (S == null || Length != S.Length) { return(false); } else { for (int i = 0; i < Length; i++) { if (c[i] != S.c[i]) { return(false); } } return(true); } }
static void Main(string[] args) { Console.WriteLine("Введите строку:"); string a = Console.ReadLine(); MyString s = new MyString(a); //Преобразование строки в массив символов Console.WriteLine("Ваша строка, преобразованная в массив:"); s.Print(); // вывод массива символов Console.WriteLine("Введите строку для сравнения:"); a = Console.ReadLine(); if (s.Equals(a) == false) Console.WriteLine("Строки не равны."); // сравнение массива и строки else Console.WriteLine("Строки равны."); Console.WriteLine("Массив преобразованный в строку:"); Console.WriteLine(s.ToString()); //преобразование массива в строку Console.Write("\nНажмите любую клавишу для закрытия программы."); Console.ReadKey(); }
static void Main(string[] args) { Console.WriteLine("This program creates MyString class with own operators. Here is an examples:\n"); MyString myStrHello = new MyString("Hello world"); MyString myStrO = new MyString("o"); MyString myStrResult; myStrResult = myStrHello + myStrO; Console.WriteLine($"MyString \'{myStrHello.ToString()}\' + MyString \'{myStrO.ToString()}\' = {myStrResult.ToString()}.\n"); myStrResult = myStrHello - myStrO; Console.WriteLine($"MyString \'{myStrHello.ToString()}\' - MyString \'{myStrO.ToString()}\' = {myStrResult.ToString()}.\n"); Console.WriteLine($"Is MyString \'{myStrHello.ToString()}\' and MyString \'{myStrO.ToString()}\' are equals?: {myStrHello == myStrO}.\n"); MyString myStrHelloCopy = new MyString("Hello world"); Console.WriteLine($"Is MyString \'{myStrHello.ToString()}\' and MyString \'{myStrHelloCopy.ToString()}\' are equals?: {myStrHello == myStrHelloCopy}.\n"); Console.WriteLine("\n\nEnd of program. Press any key."); Console.ReadKey(); }
static void Main(string[] args) { char[] hello = { 'H', 'e', 'l', 'l', 'o', ',' }; //инициализация экземпляров MyString разными способами MyString ex1 = new MyString(hello); MyString ex2 = new MyString(" world"); MyString ex3 = "!!!"; //вывод на экран Console.WriteLine("ex1 = {0}", ex1); Console.WriteLine("ex2 = {0}", ex2); Console.WriteLine("ex3 = {0}", ex3); //конкатенация MyString res = ex1 + ex2 + ex3; Console.WriteLine("ex1 + ex2 + ex3 = {0}", res); //обращение к элементу по индексу int i; Console.Write("Введите номер символа который вы хотите изменить (отсчёт с нуля): "); while (int.TryParse(Console.ReadLine(), out i) == false || i < 0 && i > res.Length) { Console.Write("Неверный ввод. Введите неотрицательное целое число меньше {0}: ", res.Length); } Console.Write("Введите символ, на который вы хотите заменить: "); char c; while (char.TryParse(Console.ReadLine(), out c) == false) { Console.Write("Неверный ввод. Введите один символ: "); } res[i] = c; Console.WriteLine(res); Console.ReadKey(); }
static void Main(string[] args) { MyString myString = new MyString("Hello World"); MyString myString2 = new MyString("Fernand Moudio"); Console.WriteLine(myString); //Добавление MyString sum = myString + myString2; Console.WriteLine("добавление строку в конце текущего : {0}", sum); //Удаление MyString subMyString = new MyString("World"); MyString del = myString - subMyString; Console.WriteLine("Удаление подстроку из текущей строки : {0}", del); //Сравнение MyString aStr = new MyString("Hello orld"); Console.WriteLine(myString == null); Console.ReadKey(); }
public static MyString operator -(MyString str1, MyString str2) { MyString result = new MyString(str1.ToString().Replace(str2.ToString(), string.Empty)); return result; }
static void Main(string[] args) { //using operator "+" var myStringFirst = new MyString("Это первая строка и она большая, больше, чем все остальные"); var myStringSecond = new MyString("Это вторая строка"); Console.WriteLine($"Содержимое первого обьекта класса \"myString\": {myStringFirst}"); Console.WriteLine($"Содержимое второго обьекта класса \"myString\": {myStringSecond}"); Console.WriteLine($"Результат сложения двух обьектов типа \"MyString\": {myStringFirst + myStringSecond}"); //using operator "-" myStringFirst.SetString("Это строка из которой необходимо удалить подстроку"); myStringSecond.SetString("удалить"); Console.WriteLine($"Содержимое первого обьекта класса \"MyString\": {myStringFirst}"); Console.WriteLine($"Содержимое второго обьекта класса \"MyString\": {myStringSecond}"); Console.WriteLine($"Результат удаления подстроки: {myStringFirst - myStringSecond}"); //using operator "==" var myStringToCompare1 = new MyString("Это строка близнец"); var myStringToCompare2 = new MyString("Это строка близнец"); if (myStringToCompare2 == null) { myStringToCompare2 = new MyString("Это строка близнец"); } Console.WriteLine($"Содержимое первого обьекта класса \"MyString\": {myStringToCompare1}"); Console.WriteLine($"Содержимое второго обьекта класса \"MyString\": {myStringToCompare2}"); Console.WriteLine($"Результат сравнения двух обьектов типа \"MyString\": {myStringToCompare1 == myStringToCompare2}"); //reusing operator "==" myStringToCompare2.SetString("Эта строка не является близнецом"); Console.WriteLine($"Значение первого обьекта класса \"MyString\": {myStringToCompare1}"); Console.WriteLine($"Значение второго обьекта класса \"MyString\": {myStringToCompare2}"); Console.WriteLine($"Результат сравнения двух обьектов типа \"MyString\": {myStringToCompare1 == myStringToCompare2}"); //using method "ToString()" myStringFirst.SetString("Метод \"ToString\" должен вывести данную строку."); Console.WriteLine($"Результат вызова метода \"ToString\" для обьекта класса \"myString\": " + $"{myStringFirst}"); //using array mode myStringFirst.SetString("Эта строка используется для проверки возможности обращения к полям данного обьекта по индексу"); Console.WriteLine($"Содержимое обьекта класса \"MyString\": {myStringFirst}"); Console.WriteLine($"Значение 10-го символа строки: {myStringFirst[9]}"); Console.ReadKey(); }