在C# .net 1.1.4322中,如何用字符串分割另一个字符串?

3

如何在C# .net 1.1.4322中使用字符串分割字符串?

示例字符串:

Key|Value|||Key|Value|||Key|Value|||Key|Value

need:

Key|Value
Key|Value
Key|Value
  • 由于分隔符为 |||,因此无法使用 RegEx.Split,并且只能将每个字符单独获取。

  • 无法使用 String.Split() 重载,因为它不在 .net 1.1 中。

已接受解决方案示例:

using System.Text.RegularExpressions;

String[] values = Regex.Split(stringToSplit,"\\|\\|\\|");
4个回答

4
你可以在Regex.Split调用中使用@"\|\|\|"吗?这会使|字符成为字面字符。

3

一种解决方法是使用替换和分割:

string[] keyvalues = "key|value|||key|value".replace("|||", "~").split('~');

如果原始字符串中有一个 ~,会发生什么? - LukeH
“~”仅是一个示例。你可以使用任何字符,但这显然不是一个完美的解决方案。 - Joel

0

这里有一个例子:

System.Collections.Hashtable table;
string[] items = somestring.split("|||");
foreach(string item in items)
{
   string[] keyvalue = item.split("|");
   table.add(keyvalue[0],keyvalue[1]);
}

"Split(string, StringCompareOptions)"和"Split(string, Int32, StringCompareOptions)"直到.NET Framework 2.0才出现。OP指定了1.1版本。 - Kev

0
string input = "Hi#*#Hello#*#i#*#Hate#*#My#*#......" ;
string[] delim = new string[] { "#*#" };
string[] results = input.split(delim , StringSplitOptions.None); 

这个问题涉及到.NET 1.1。string.Split的重载接受一个string[]是在.NET 2.0中添加的。 - Kevin Gosse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接