2017-10-17 3 views
-1

Je travaille sur le traitement du langage naturel, je suis en train de retirer dernière partie de chaîne, mais il supprimer chaîne de à l'intérieur une chaîne, mon code.C# chaîne Remplacer ne pas supprimer chaîne de fin

public string RemoveSuffix(string word) 
{ 
    if (word.EndsWith("ی") 
    { 
    word = word.Replace("ی",""); 
    } 

    return word; 
} 
+2

Quelle est l'entrée donnée, comment voulez-vous dire que cela ne fonctionne pas – EpicKip

+1

Chaîne remplacer la fonction remplacer al l occurrence de sub string ce que vous fournissez, vous devez utiliser remove méthode de chaîne –

+0

'word = word.Replace (" ی "," ");' remplacerait toutes les occurrences non seulement le suffixe. – dcg

Répondre

-1

vous devriez avoir à essayer

public string RemoveSuffix(string word,string lstPart) 
{ 
return word=word.TrimEnd(lstPart); 

} 

vous pouvez changer votre mot de code dur avec une variable/élément de liste

+1

'String' a de nombreuses méthodes qui peuvent aider, y compris les méthodes de coupe. Pas besoin d'écrire tout ça. Pas mon downvote, mais cette réponse devrait être supprimée –

+1

@Edward L'Islam remercie ce préfet de travail maintenant je peux appeler cette méthode pour toutes les corrections de poste, – tayyaba

4

Vous, probablement, à la recherche d'TrimEnd:

// static: you have no need in "this" 
    public static string RemoveSuffix(string word) { 
    return word == null // <- do not forget to validate public method's argument(s) 
     ? null   // or throw ArgumentNullException  
     : word.TrimEnd('ی'); 
    } 
+1

Pourrait être également écrit en tant que: 'chaîne publique RemoveSuffix (mot chaîne) => mot? .TrimEnd ('ی') ?? null; ' –

+1

@GiulioCaccin quel est le point de' ?? null'? Voulais-tu écrire '?? "" 'peut-être? –

+0

@PanagiotisKanavos juste pour garder la sémantique et les commentaires de l'auteur original^_^ C'est mieux avec la chaîne vide, je vais mettre à jour. –