获取子字符串

本文关键字:字符串 获取 | 更新日期: 2023-09-27 18:33:42

问题在C#上。我有一个字符串" value1=1234;value2=2345;value3=3456;value4= ..."

检索值的最佳方法是什么?

我想过String.Split(";")但我不知道如何仅检索值。我得到的结果包括我不想要的前缀。我只想要"1234", "2345", "3456"...的值,他们把它们放在字符串列表中。

我该如何解决这个问题?谢谢。

获取子字符串

如果格式始终是固定的,则可以通过 LINQ 相当轻松地执行此操作:

List<string> values = theString.Split(';').Select(s => s.Split('=')[1]).ToList();

请注意,如果输入字符串以分号结尾,则可能需要使用 RemoveEmptyEntries

List<string> values = theString
                         .Split(new[]{';'}, StringSplitOptions.RemoveEmptyEntries)
                         .Select(s => s.Split('=')[1]).ToList();

这将防止Select内发生异常。 但是,如果输入不以分号结尾,则不需要这样做。

var text =  "value1=1234;value2=2345;value3=3456;value4= ...";
var pieces = text.Split('=');
var values = new Dictionary<string,string>();
for(int index = 0; index < pieces.Length; index += 2)
{
    values.Add(pieces[index], pieces[index + 1]);
}

将为您提供一个对的字典,其中键是"="的左侧,值是值的字符串表示形式,这允许您执行以下操作:

var value1 = values["value1"];
var value2 = values["value2"];