从字符串中提取大小不同的多个值

时间:2018-10-13 23:45:43

标签: c# string split

我有两个像这样的字符串

var string1 = "order customer joe intel 300";
var string2 = "order customer john amd 200";

我正在尝试创建一种方法,该方法可以从每个字符串中提取名称,公司和数字,并从数据中形成格式化的字符串。例如

var formattedString1 = "Order placed for joe - 300 units of intel"

到目前为止,我已经设法删除了ordercustomer这样的单词

string1 = string1.Replace("order", string.Empty).Replace("customer", string.Empty);

我的问题是如何从字符串中提取剩余的单词并将其保存为这样的变量

var name = "joe";
var company = "intel";
var quantity = "300";

请注意,我正在尝试形成一种解决方案,以从任何字符串中正确提取名称,公司和数字,而不考虑任何变量的长度。

2 个答案:

答案 0 :(得分:0)

您的编程经验是我的“我的感觉”,所以我将向您详细介绍如何进行编程。如注释中所述,您可以使用String.Split方法,该方法将返回一个字符串数组。可以使用从0开始的索引捕获数组中的每个字符串。然后可以使用索引将变量分配给字符串并对其进行格式化。

类似这样的东西:

string string1 = "order customer joe intel 300";
string string2 = "order customer john amd 200";

string[] parts = string1.Split(' ');

string name = parts[2];
string company = parts[3]
string quantity = parts[4];

string formattedString = "Order placed for " + name + " - " + quantity + " units of " + company;

答案 1 :(得分:0)

如果您有很多要处理的字符串,听起来就像您一样。.您可以尝试如下操作:

// Array of data
string[] values = 
    {
    "order customer joe intel 300",
    "order customer john amd 200",
    "order customer bob Qualcomm 300"
};

// Loop the array of data
foreach (string value in values)
{
    // split up the data in to the words
    string[] split = value.Split(' ');

    // Get the values (assuming they are always in the same place)
    string name = split[2];
    string company = split[3];
    string quantity = split[4];

    // Create the formatted string
    string formattedString = $"Order placed for {name} - {quantity} units of {company}";

    // Do something with the string ..
    Console.WriteLine(formattedString);
}