【问题标题】:How to find the last word inside a string which is seperated by " "? C#如何找到以“”分隔的字符串中的最后一个单词? C#
【发布时间】:2018-04-27 11:21:43
【问题描述】:

感谢大家的帮助,在你们的帮助下,我得到了它的帮助。

所以我编写了一些代码来提取字符串中的第一个单词。下面是我的代码。

var LongString = "Hello World";
var firstWord = LongString.Substring(0, LongString.IndexOf(" "));

这段代码给了我结果“Hello”但是如果我不知道最后一个索引,我如何从字符串中检索最后一个单词。有没有一种方法可以在不使用当前位于 LongString 变量中的字符串的情况下获取最后一个索引号。提前致谢。

【问题讨论】:

  • 在您的示例中,如果您要查找" " 的索引,则相同。您能进一步说明您的需求吗?
  • 会拆分空间工作 - 然后您可以获取第一个和最后一个数组元素。
  • 你的意思是 "用当前在 LongString 变量中的字符串提供它"
  • @aponmene 是的,但是如果我要使用例如代码 var firstWord = LongString.Substring(0, LongString.LastIndexOf(" "));它会返回字符串的预期世界部分吗?对不起,我对编码很陌生

标签: c# indexof lastindexof


【解决方案1】:
var lastWord = longString.Split(' ',
                                StringSplitOptions.RemoveEmptyEntries)
                         .Last();

就是这样。

【讨论】:

  • 保存拆分操作的结果将允许检索第一个单词和最后一个单词而不需要第一个子字符串。
  • @PaulF 是的,如果您需要多次访问不同的单个单词,则必须缓存 Split 结果。
【解决方案2】:

只需使用 LastIndexOf。

const string hw = "Hello World";
var lastIndex = hw.LastIndexOf(" ");
Console.WriteLine(hw.Substring(lastIndex + 1));

【讨论】:

    【解决方案3】:

    如果我理解正确,您正在寻找:

    index = lastIndexLongString.LastIndexOf(" ");
    var firstWord = LongString.Substring(index+1);
    

    【讨论】:

      【解决方案4】:

      回答运行修复:使用“”而不是“”作为拆分功能。

      var splittedWord = LongString.Split(' ');
      var firstWord = splittedWord.FirstOrDefault();
      var secondWord = splittedWord.LastOrDefault();
      

      【讨论】:

      • 我会将var firstWord = splittedWord[0] 设置为String.Split 返回一个至少包含1 个字符串的数组(即使主字符串不包含分隔符)(MSDN Reference)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多