解析最后一个空格之前的所有字符

时间:2012-05-20 04:30:56

标签: c# indexing

我需要采取如下行:

  

Fruit Tasty Brand Apples 3

并分开数量和零件描述。通过这样做,我能够得到3的数量:

foreach (var firstPass in textBox1.Lines)
{

    {//trim it up
        string firstTrimmed = firstPass.TrimEnd();

        if (firstTrimmed.Length > 0)
        {//find the qty
            int locateQty = firstTrimmed.LastIndexOf(" ") + 1;
            var qty = (firstTrimmed.Substring(locateQty));



            textBox2.Text = qty.ToString();

但是我无法在数量之前得到完整描述(Fruit Tasty Brand Apples),例如我可以将描述和数量视为不同的实体,希望能够添加增加重复描述的总量。

3 个答案:

答案 0 :(得分:2)

您应该能够从零开始使用Substring来获得所需内容:

var descr = firstTrimmed.Substring(0, locateQty-2);

答案 1 :(得分:1)

您可以使用Substring()函数的第二次重载:http://msdn.microsoft.com/en-us/library/aka44szs

它取字符串的长度,可以与locateQty变量一起使用,因为最后一个空格char的位置是零,它将等于描述的长度。

string description = firstTrimmed.Substring(0, locateQty);

答案 2 :(得分:1)

string value = "Fruit Tasty Brand Apples 3";
int index1 = value.LastIndexOf(' ');
if (index1 != -1)
{
    Console.WriteLine(index1);
    Console.WriteLine(value.Substring(index1)); // 3
    Console.WriteLine(value.Substring(0, index1-2)); // Fruit Tasty Brand Apples
}