Как разделить строку в C#
Содержание
В этой статье мы узнаем, как разделить строку на C#.
C# Split () обрабатывает разделение на заданные строковые и символьные разделители. Он возвращает массив String, содержащий подстроки, разделенные данным массивом System.Char.
Метод String Split игнорирует любой элемент разделителя, значение которого равно null или пустая строка ("").
Синтаксис:
string[] string.split(string[] separator)
Параметры:
Разделитель - данный разделитель.
Возвращает:
Массив строк, разделенных одним или несколькими символами в разделителе.
Пример String Split в C#
using System; using System.Windows.Forms; namespace WindowsApplication { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string str = null; string[] strArr = null; int count = 0; str = "Welcome to CSharp split test scenario"; char[] splitchar = { ' ' }; strArr = str.Split(splitchar); for (count = 0; count <= strArr.Length - 1; count++) { MessageBox.Show(strArr[count]); } } } }
Вывод:
Welcome to CSharp split test scenario
Как разделять строки с использованием регулярных выражений?
Методы регулярного выражения Split () аналогичны методу String.Split (), за исключением того, что метод Regex.Split () разделяет строку на разделителе, определяемом регулярным выражением, вместо набора символов.
При использовании регулярных выражений вы должны использовать следующее пространство имен:
using System.Text.RegularExpressions; string str = "test1\n \ntest2\n \ntest3\n \n \ntest4"; string[] result = Regex.Split(str, "\n\\s*"); for (int i = 0; i < result.Length; i++) MessageBox.Show(result[i]);
Вывод:
test1 test2 test3 test4
Мы можем разделить строку на несколько разделителей символов, используя метод String.split().
string input = "test1)(test2)(test3)(test4)(test5"; string[] result = input.Split(new string[] { ")(" }, StringSplitOptions.None); foreach (string s in result) MessageBox.Show(s);
Вывод:
test1 test2 test3 test4 test5
Использование регулярных выражений для нескольких символов
string input = "test1)(test2)(test3)(test4)(test5"; string[] result = Regex.Split(input, @"\)\("); foreach (string s in result) MessageBox.Show(s);
Вывод:
test1 test2 test3 test4 test5
Вы можете разделить строку на новую строку или возврат каретки с помощью разделителя «\r\n».
string test = "test1\ntest2\r\ntest3\ntest4\n"; string[] result = test.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (string s in result) MessageBox.Show(s);
Вывод:
test1 test2 test3 test4
Environment.NewLine
Также вы можете использовать Environment.NewLine для удаления новой строки из строки.
string test = "test1\r\ntest2\r\ntest3\r\ntest4"; string[] result = test.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); foreach (string s in result) MessageBox.Show(s);
Вывод:
test1 test2 test3 test4
Как разбить строку на List <String>
Вы можете вернуть результат метода String splt () в список C#. Следующая программа преобразует String Array в список.
string s = "This is a sentence."; IList<string> list = new List<string>(s.Split(new string[] { " is " }, StringSplitOptions.None)); foreach (string element in list) { MessageBox.Show(element); }
StringSplitOptions.RemoveEmptyEntries гарантирует, что возвращаемое значение не включает элементы массива, содержащие пустую строку.
Следующая программа C# показывает, как удалить все пробелы из строки с помощью StringSplitOptions.RemoveEmptyEntries.
using System.Linq; using System.Text; using System.Windows.Forms; using System.Text.RegularExpressions; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string myStrA = "test1 test2 test3 test4 test5"; string[] result = myStrA.Split(new char[0], StringSplitOptions.RemoveEmptyEntries); foreach (string s in result) MessageBox.Show(s); } } }
Вывод:
test1 test2 test3 test4 test5