【问题标题】:How do I check if a string contains a certain word and then delete that said word?如何检查字符串是否包含某个单词,然后删除该单词?
【发布时间】:2021-05-20 07:17:33
【问题描述】:

我希望它像这样工作

sentence: "random sentence correct"

result: "random sentence"

这是我当前的代码:

for(int x = 0; x < answers.Count; x++)
{
    if(answers[x].Contains(" correct"))
    {
        answers[x].Replace(" correct", "");
        keys.Add(answers[x]);
    }
}

由于某种原因,此代码不会替换所述单词

或者如果这是不可能的。我可以只删除字符串的最后一个单词吗?

所以如果字符串是“这是一个正确的句子”

结果将是“这是一个句子”

【问题讨论】:

  • 定义最后一个词是什么。最后一个空格后面的所有内容?还是更安全的东西?
  • 最后一个空格及其后面的所有内容
  • answers[x] = answers[x].Substring(0, answers[x].LastIndexOf(" ")); 但请注意,它仅适用于您给出的严格定义。

标签: c# replace contains


【解决方案1】:
answers[x] = answers[x].Replace(" correct", "");

每个字符串操作函数(如本例中的 Replace)都会返回一个新字符串,因为字符串在 c# 中是不可变的

你可以阅读更多关于它here

【讨论】:

  • 我明白了,但是我没有办法删除一个字符串的一个句子的最后一个单词吗?
  • 这是一个完全不同的问题,
  • 可以统计“”(空格),删除最后一个“”(空格)字符后的最后一个区域
  • @hndsmkkgr:您注意到答案没有使用您的代码,而是附加了answers[x] =?因为您的评论表明您忽略了该细节,并且您不明白为什么必须将此字符串重新分配给旧字符串所在的位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
相关资源
最近更新 更多