- C#. Массивы строк. Примеры решения наиболее распространенных задач
- Массивы строк. Примеры решения наиболее распространенных задач
- Связанные темы
- String Array in C#
- Declaration Syntax
- Initialization of string array
- Assigning Values
- Examples of String Array in C#
- 1. Accessing array elements using the index number
- 2. Accessing array elements using for loop
- String array and list of strings
- 2D string array
- Conclusion
- Recommended Articles
C#. Массивы строк. Примеры решения наиболее распространенных задач
Массивы строк. Примеры решения наиболее распространенных задач
Поиск на других ресурсах:
1. Массив строк. Тип string[] . Создание массива строк
В языке C# строки могут быть объединены в массив. Каждая строка представляется типом string .
Для создания массива строк нужно выполнить следующие шаги.
1. Объявить ссылку на тип string , например
где arrString – название ссылки;
2. Выделить память для массива
arrString = new string[size];
здесь size – количество строк (экземпляров) типа string .
2. Пример инициализации массива строк
Массив строк может быть инициализирован при его объявлении. Ниже приводится пример инициализации и вывод на экран массива daysOfWeek , определяющего дни недели.
using System; namespace ConsoleApp8 < class Program < static void Main(string[] args) < // Инициализация массива строк string[] daysOfWeek = < "Sunday", "Monday", "Tuersday", "Wednesday", "Thirsday", "Friday", "Saturday" >; // Вывод массива строк AS в цикле for (int i = 0; i < daysOfWeek.Length; i++) Console.WriteLine("AS[] = ", i, daysOfWeek[i]); Console.ReadKey(); > > >
Результат выполнения программы
AS[0] = Sunday AS[1] = Monday AS[2] = Tuersday AS[3] = Wednesday AS[4] = Thirsday AS[5] = Friday AS[6] = Saturday
3. Пример ввода строк с клавиатуры и создания массива строк
В примере вводятся строки с клавиатуры до тех пор, пока не будет введена пустая строка «» . Одновременно формируется массив строк, который выводится на экран после завершения ввода.
using System; namespace ConsoleApp8 < class Program < static void Main(string[] args) < // Ввод строк с клавиатуры // и образование нового массива // 1. Объявление переменных string[] AS; // ссылка на массив строк int count; // текущее количество строк в массиве string s; string[] AS2; // дополнительная переменная-ссылка - сохраняет старый массив строк // 2. Цикл ввода строк Console.WriteLine("Enter strings:"); count = 0; // обнулить количество строк AS = new string[count]; // выделить память для 0 строк do < // Ввести строку s = Console.ReadLine(); // Проверка, пустая ли строка if (s!="") < // если строка не пустая, то добавить строку в массив count++; // предварительно выделить память для нового массива // в котором на 1 элемент больше AS2 = new string[count]; // скопировать старый массив в новый for (int i = 0; i < AS2.Length - 1; i++) AS2[i] = AS[i]; // добавить последнюю введенную строку в массив AS2 AS2[count - 1] = s; // Освобождать память, предварительно выделенную под AS не нужно, // этим занимается сборщик мусора // перенаправить ссылку AS на AS2 AS = AS2; > > while (s != ""); // 3. Вывод массива строк AS в цикле for (int i = 0; i < AS.Length; i++) Console.WriteLine("AS[] = ", i, AS[i]); Console.ReadKey(); > > >
Как видно из вышеприведенного кода, не нужно делать освобождение предварительно выделенной памяти для массива AS как в языках C/C++. Этим занимается сборщик мусора.
Результат работы программы
Enter strings: abc bcdef ghi jkl mno AS[0] = abc AS[1] = bcdef AS[2] = ghi AS[3] = jkl mno
4. Пример сортировки массива строк методом вставки
В примере демонстрируется ввод массива из n строк ( n >0) и его сортировка методом вставки. Строки сортируются по возрастанию.
using System; namespace ConsoleApp8 < class Program < static void Main(string[] args) < // Сортировка массива строк методом вставки // 1. Объявление переменных string[] AS; // массив строк int count; // количество элементов в массиве string s; // дополнительная переменная-строка // 2. Ввести количество строк Console.Write("count color: #008080;">Int32.Parse(Console.ReadLine()); // 3. Выделить память для массива из count строк AS = new string[count]; // 4. Ввести данные массива с клавиатуры Console.WriteLine("Enter array:"); for (int i=0; iConsole.Write("AS[] color: #008080;">Console.ReadLine(); > // 5. Сортировка методом вставки for (int i = 0; i < AS.Length - 1; i++) for (int j = i; j >= 0; j--) if (String.Compare(AS[j], AS[j + 1]) > 0) // функция Compare() < // поменять значения местами s = AS[j]; AS[j] = AS[j + 1]; AS[j + 1] = s; > // 6. Вывести массив AS Console.WriteLine("Sorted array:"); for (int i = 0; i < AS.Length; i++) Console.WriteLine("AS[] = ", i, AS[i]); Console.ReadKey(); > > >
Как видно из вышеприведенного примера, для сравнения двух массивов используется функция Compare() . Эта функция возвращает число больше 0, если первая строка находится в лексикографическом порядке после второй строки. Если строки равны, функция возвращает нулевое значение.
Результат работы программы
count = 5 Enter array: AS[0] = lkd AS[1] = kbd AS[2] = abcd AS[3] = jklm nop AS[4] = ffed Sorted array: AS[0] = abcd AS[1] = ffed AS[2] = jklm nop AS[3] = kbd AS[4] = lkd
5. Пример поиска заданной строки в массиве строк
В примере вводится массив строк и вводится некоторая строка. Если строка есть в массиве, то определяется ее позиция. Результат поиска выводится на экран.
using System; namespace ConsoleApp8 < class Program < static void Main(string[] args) < // Поиск заданной строки в массиве строк // 1. Объявление переменных string[] AS; // массив строк int count; // количество элементов в массиве string str; // искомая строка // 2. Ввести количество строк Console.Write("count color: #008080;">Int32.Parse(Console.ReadLine()); // 3. Проверка, корректно ли значение count if (count<=0) < Console.WriteLine("Error. The value of count is incorrect."); Console.ReadKey(); return; > // 4. Выделить память для массива из count строк AS = new string[count]; // 5. Ввести данные массива с клавиатуры Console.WriteLine("Enter array:"); for (int i=0; iConsole.Write("AS[] color: #008080;">Console.ReadLine(); > // 6. Ввести строку символов Console.Write("Enter string: "); str = Console.ReadLine(); // 7. Поиск строки в массиве строк bool f_is = false; // флаг, сигнализирующий о наличии строки в массиве int index = -1; // позиция строки в массиве for (int i = 0; i < AS.Length - 1; i++) if (str == AS[i]) < f_is = true; index = i; > // 8. Вывод результата if (f_is) < Console.WriteLine("String \"\" is in the array.", str); Console.WriteLine("Position is ", index); > else < Console.WriteLine("String \"\" is not in the array.", str); > Console.ReadKey(); > > >
Результат работы программы
count = 7 Enter array: AS[0] = sd AS[1] = lkjl AS[2] = wewe AS[3] = ooii AS[4] = slkdlk AS[5] = cxx AS[6] = lkl Enter string: wewe String "wewe" is in the array. Position is 2
6. Пример подсчета количества вхождений заданной строки в массиве строк
В примере вводится строка и массив строк. Затем осуществляется подсчет количества вхождений заданной строки в массиве строк.
using System; namespace ConsoleApp8 < class Program < static void Main(string[] args) < // Вычисление количества вхождений заданной строки в массиве строк // 1. Объявление переменных string[] AS; // массив строк int count; // количество элементов в массиве string str; // строка, количество вхождений которой вычисляется int n_occurs; // количество вхождений - результат // 2. Ввод строки str Console.WriteLine("Enter string:"); str = Console.ReadLine(); // 3. Ввод количества элементов в массиве Console.Write("count color: #008080;">Convert.ToInt32(Console.ReadLine()); // 4. Проверка, корректно ли значение count if (count<=0) < Console.WriteLine("Error. The value of count is incorrect."); Console.ReadLine(); return; > // 5. Выделение памяти для массива строк AS = new string[count]; // 6. Ввод массива с клавиатуры Console.WriteLine("Enter the array AS:"); for (int i=0;iConsole.Write("AS[] color: #008080;">Console.ReadLine(); > // 7. Подсчет количества вхождений n_occurs = 0; for (int i = 0; i < AS.Length; i++) if (str == AS[i]) n_occurs++; // 8. Вывод результата Console.WriteLine("n_occurs = ", n_occurs); Console.ReadKey(); > > >
Результат выполнения программы
Enter string: abc count = 9 Enter the array AS: AS[0] = dd AS[1] = abc AS[2] = ghi AS[3] = jklm AS[4] = abc AS[5] = def AS[6] = bca AS[7] = abc AS[8] = fklsdj n_occurs = 3
Связанные темы
String Array in C#
To understand String Array in C#, let us first understand what is an array and string.
Web development, programming languages, Software testing & others
Array: A collection of the same type of variables stored sequentially and each variable can be accessed using its index number. Indexing an array starts with zero.
For example an array of five integers
String Array: It is an array of strings. Like a string array of employee names:String: Array of characters.
Declaration Syntax
There are two ways to declare a string array:
By using the String class object:
String[] variable_name = new String[size];
By using a string keyword:
string[] variable_name = new string[size];
2. Declaration without size
Initialization of string array
String array can be initialized using the new keyword. We cannot initialize string array without specifying it’s the size. There are two ways to initialize a string array.
1. At the time of declaration:
string[] variable_name = new string[size];
variable_name = new string[size];
Assigning Values
Values to string array can be assigned at the time of initialization or by using index number.
string[] stringer = new stringArr[3];
string[] stringArr = new stringArr[3];
Examples of String Array in C#
Some of the examples are given below:
1. Accessing array elements using the index number
using System; public class StringArray < public static void Main() < // Array Declaration and Initialization string[] stringArr = new string[3] ; // Accessing elements using index Console.WriteLine(stringArr[0]); Console.WriteLine(stringArr[1]); Console.WriteLine(stringArr[2]); > >
2. Accessing array elements using for loop
using System; public class StringArray < public static void Main() < // Array Declaration and Initialization string[] stringArr= new string[3] ; // Accessing elements using for loop for(int i=0;i > >
- Apart from this, we can perform many operations on string arrays like searching, sorting, converting string array to string or converting string to string array and many more. Let us see some of these operations in examples below:
- Searching in a string array: There are many ways to search for a word or we can say for a string in the string array. One is using the Find() method of Array class. This method returns the first element in the array that matches the conditions defined by the specified predicate
using System; public class StringSearch < public static void Main() < try < // Creating and initializing string array of flower names String[] flowerArr = new String[]; // Print values of the string array Console.WriteLine("Flower names:"); for (int i = 0; i < flowerArr.Length; i++) < Console.WriteLine("", flowerArr[i]); > Console.WriteLine(); //Search for flower name that starts with 'R' string result = Array.Find(flowerArr, name => name.StartsWith("R", StringComparison.CurrentCultureIgnoreCase)); //Print result Console.Write("Flower name starting with 'R': ", result); > catch (Exception e) < Console.Write("", e.Message); > > >
Sorting in a string array: We can sort a string array in many ways. Here we will sort it using Array.Sort()
using System; public class StringSort < public static void Main() < try < // declaring and initializing string array String[] stringArr = new String[] ; // Sorting in ascending order. Array.Sort(stringArr); // reverse array to sort it in descending order Array.Reverse(stringArr); // print sorted array foreach(string val in stringArr) < Console.Write(val + " "); >> catch(Exception ex) < Console.Write(ex.Message); >> >
Converting string to string array: We can easily convert a string to a string array and vice versa as shown in the below examples:
using System; public class StringToStringArray < public static void Main() < try < string str = "Hello world"; //convert string to string array string[] strArr = new string[]< str >; //print string array foreach(string s in strArr) < Console.Write(s); >> catch(Exception ex) < Console.Write(ex.Message); >> >
The output displayed is not a string but a string array. Example converting string array to string:
using System; public class StringArrayToString < public static void Main() < try< >string[] strArr = new string[2]; strArr[0] = "Good"; strArr[1] = "Morning!"; //converting string array to string string str = string.Join("", strArr); //print string Console.WriteLine(str); catch(Exception ex) < Console.Write(ex.Message); >> >
String array and list of strings
From the above examples, we can say that a string array is very much similar to a list of string. But here are two major differences between them:
- We cannot resize string array e. if you have a string array of size four, then you cannot add five elements in it. On the other hand, the list can be resized any time, you can add as many elements as you want in a list.
- The list is slower than the array, thus operations performed on string array will be faster than that of
We can convert a string array to list as shown below:
using System; using System.Collections.Generic; using System. Linq; public class StringArrayToList < public static void Main() < string[] strArray = new string[]< "string", "array", "to", "list">; //converting string array to list List list = strArray.ToList(); //print list foreach (string item in the list) < Console.WriteLine(item); >> >
2D string array
C# also supports multidimensional string array, the simplest form of a multidimensional string array is 2D string array.
using System; public class TwoDimensionalArray < public static void Main() < string[,] strArr = new string[,] < , >; for (int i = 0; i , ", s1, s2); > > >
Conclusion
- String array in C# is used to store multiple strings under a single
- The two-dimensional string array is used to represent any matrix kind of
- Performance of string array is faster than other collections used to store
- They are strongly
Recommended Articles
This is a guide to the String Array in C#. Here we discuss the introduction of the String Array in C#, Declaration Syntax, Initialization of String Array and Examples. You can also go through our other suggested articles to learn more–
500+ Hours of HD Videos
15 Learning Paths
120+ Courses
Verifiable Certificate of Completion
Lifetime Access
1000+ Hours of HD Videos
43 Learning Paths
250+ Courses
Verifiable Certificate of Completion
Lifetime Access
1500+ Hour of HD Videos
80 Learning Paths
360+ Courses
Verifiable Certificate of Completion
Lifetime Access
3000+ Hours of HD Videos
149 Learning Paths
600+ Courses
Verifiable Certificate of Completion
Lifetime Access
C# Course Bundle — 24 Courses in 1 | 5 Mock Tests
111+ Hours of HD Videos
24 Courses
5 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.6