簡體   English   中英

在“第一個”空格字符之前和之后獲取字符串

[英]Take string before and after 'First' space character

我的字串里有一個大字。 示例白葡萄酒額外優惠。

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

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

我正在獲得White / r提供的輸出。 我說的是最后一個空格之后的單詞,而不是第一個之后的單詞。

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

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}";

您的問題是由於您如何拆分內容。 您已經在空間上分隔了內容,但是隨后創建了具有四個不同索引的數組。 您可以解決幾種不同的方法。

var sentence = "White wine extra offer";
var words = sentence.Split(' ');

var white = words.FirstOrDefault();
var wineExtraOffer = String.Join(" ", words.Skip(1));

您還應該意識到,如果直接使用Linq操作字符串,它將被視為char[] 因此,您需要確保在分配值時不要對一堆Linq使用相同的變量。

擺弄輸出。

可以通過這種方式完成:

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];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM