Как удалить определенные символы слова в c # - PullRequest
1 голос
/ 22 сентября 2010

у меня есть

string word = "degree/NN";

Я хочу удалить часть слова "/NN" и взять только слово "degree".

У меня есть следующие условия:

  • Длина слова может быть разной в разных случаях. (может быть любым словом, поэтому длина не фиксирована)
  • Но слово всегда будет содержать часть "/NN" в конце.

Как я могу сделать это в C # .NET?

Ответы [ 4 ]

4 голосов
/ 22 сентября 2010

Реализовано как метод расширения:

static class StringExtension
{
  public static string RemoveTrailingText(this string text, string textToRemove)
  {
    if (!text.EndsWith(textToRemove))
      return text;

    return text.Substring(0, text.Length - textToRemove.Length);
  }
}

Использование:

string whatever = "degree/NN".RemoveTrailingText("/NN");

При этом учитывается, что нежелательная часть "/ NN" удаляется только в конце слова, как вы указали. Простое Replace будет удалять все вхождения "/ NN". Однако это не может быть проблемой в вашем особом случае.

4 голосов
/ 22 сентября 2010

Вы можете сократить входную строку на три символа, используя String.Remove , например:

string word = "degree/NN";

string result = word.Remove(word.Length - 3);

Если часть после косой черты имеет переменную длину, вы можете использовать String.LastIndexOf , чтобы найти косую черту:

string word = "degree/NN";

string result = word.Remove(word.LastIndexOf('/'));
2 голосов
/ 22 сентября 2010

Просто используйте

word = word.Replace(@"/NN","");

редактировать

Забыл добавить слово =. Исправлено в моем примере.

0 голосов
/ 22 сентября 2010

Попробуйте это -

  string.replace();

если вам нужно заменить шаблоны, используйте regex replace

  Regex rgx = new Regex("/NN");
  string result = rgx.Replace("degree/NN", string.Empty);
...