如何使用字符串分隔符拆分字符串

本文关键字:字符串 拆分 分隔符 何使用 | 更新日期: 2023-09-27 18:20:59

我有这个字符串:

"My name is Marco and I'm from Italy"

我想拆分它,分隔符是is Marco and,所以我应该得到一个带有的数组

  • [0]处的My name
  • CCD_ 3在[1]处

我如何使用C#?

我尝试过:

.Split("is Marco and")

但它只想要一个字符。

如何使用字符串分隔符拆分字符串

string[] tokens = str.Split(new[] { "is Marco and" }, StringSplitOptions.None);

如果您有一个单字符分隔符(例如,),您可以将其简化为(注意单引号):

string[] tokens = str.Split(',');
.Split(new string[] { "is Marco and" }, StringSplitOptions.None)

考虑"is Marco and"周围的空间。您希望在结果中包括空格,还是希望将其删除?你很可能想用" is Marco and "作为分隔符。。。

您在一个相当复杂的子字符串上拆分一个字符串。我会使用正则表达式而不是String.Split。后者更适合标记文本。

例如:

var rx = new System.Text.RegularExpressions.Regex("is Marco and");
var array = rx.Split("My name is Marco and I'm from Italy");

请改用此函数。

string source = "My name is Marco and I'm from Italy";
string[] stringSeparators = new string[] {"is Marco and"};
var result = source.Split(stringSeparators, StringSplitOptions.None);

您可以使用IndexOf方法来获取字符串的位置,并使用该位置和搜索字符串的长度对其进行拆分。


您也可以使用正则表达式。一个简单的谷歌搜索结果与这个

using System;
using System.Text.RegularExpressions;
class Program {
  static void Main() {
    string value = "cat'r'ndog'r'nanimal'r'nperson";
    // Split the string on line breaks.
    // ... The return value from Split is a string[] array.
    string[] lines = Regex.Split(value, "'r'n");
    foreach (string line in lines) {
        Console.WriteLine(line);
    }
  }
}

阅读C#拆分字符串示例-Dot-Net Pearls,解决方案可以是:

var results = yourString.Split(new string[] { "is Marco and" }, StringSplitOptions.None);

有一个版本的string.Split采用字符串数组和StringSplitOptions参数:

http://msdn.microsoft.com/en-us/library/tabh47cf.aspx