在“第一个”空格字符之前和之后获取字符串

时间:2018-11-08 21:31:51

标签: c#

我在字符串中有一个大字。例 白葡萄酒额外优惠。

我想在第一行接受“白色”,在第二行接受“额外的葡萄酒”。 在下面使用此代码:

string value="White wine extra offer";
value = value.Split(' ').FirstOrDefault() + ' ' + Environment.NewLine + value.Split(' ').LastOrDefault();

我正在获得White / r报价。 我说的是最后一个空格之后的单词,而不是第一个之后的单词。

3 个答案:

答案 0 :(得分:4)

您可以找到第一个空格的索引,并使用我想的子字符串。

string value = "White wine extra offer";

var spaceIndex = value.IndexOf(" ");

var firstLine = value.Substring(0, spaceIndex);
var secondLine = value.Substring(spaceIndex + 1);

var fullText = $"{firstLine}{Environment.NewLine}{secondLine}";

答案 1 :(得分:2)

您的问题是由于您如何拆分内容。您已经在空间上分隔了内容,但是随后创建了具有四个不同索引的数组。您可以解决几种不同的方法。

200

您还应该意识到,如果直接使用Linq操作字符串,它将被视为var sentence = "White wine extra offer"; var words = sentence.Split(' '); var white = words.FirstOrDefault(); var wineExtraOffer = String.Join(" ", words.Skip(1)); 。因此,您需要确保在分配值时不要对一堆Linq使用相同的变量。

Fiddle with output.

答案 2 :(得分:0)

可以通过这种方式完成:

string value="White wine extra offer";
string[] words = value.Split(' ');

// Take the first word and add break line 
value = words[0] + Environment.NewLine;

// Add the rest of the phrase
for(int i = 1; i < words.lenght; ++i)
  value += words[i];
相关问题