Как разделить строку в 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

 

Источник: http://www.csharpstar.com/split-string-csharp/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector