2017-07-25 12 views
0

Comment puis-je filtrer les caractères spécifiques de la chaîne entrée? S'il vous plaît voir ci-dessous pour savoir comment j'ai essayé. Mais quand j'ai essayé avec le caractère à découper entre les nombresComment filtrer les caractères de la chaîne entrée par l'utilisateur dans C#?

using System; 

    namespace PlainTest 
    { 
     class arrayTest 
     { 
      static void Main(string[] args) 
      { 
       bool doAlways = true; 
       int i = 1; 
       do 
       { 
        Console.WriteLine("Test Number : {0}", i++); 
        Console.Write("Key in the string: "); 
        char[] alpha = { 'a', 'b', 'c' }; 
        string text = Console.ReadLine(); 
        string filterAlphabet = text.Trim(alpha); 
        Console.WriteLine("The input is : {0}", text); 
        Console.WriteLine("Ater trimed the alpha a,b,c : {0}", filterAlphabet); 


       } while (doAlways == true); 
      } 
     } 
    } 

Le filtre ne fonctionne pas. Veuillez voir ci-dessous pour les sorties pour différentes entrées.

Test Number : 1 
Key in the string: 123abc 
The input is : 123abc 
Ater trimed the alpha a,b,c : 123 

Test Number : 2 
Key in the string: abc123 
The input is : abc123 
Ater trimed the alpha a,b,c : 123 

**Test Number : 3 
Key in the string: aa1bb2cc3 
The input is : aa1bb2cc3 
Ater trimed the alpha a,b,c : 1bb2cc3** 

Test Number : 4 
Key in the string: aaabbbccc123 
The input is : aaabbbccc123 
Ater trimed the alpha a,b,c : 123 

Test Number : 5 
Key in the string: a12bc 
The input is : a12bc 
Ater trimed the alpha a,b,c : 12 

Test Number : 6 
Key in the string: 

S'il vous plaît me conseiller. Merci.

+2

Avez-vous lu la ([Documentation] https://msdn.microsoft.com/en-us/ library/d4tt83f9 (v = vs.110) .aspx) pour 'String.Trim'? * Supprime toutes les occurrences ** de début et de fin ** d'un ensemble de caractères spécifié dans un tableau à partir de l'objet String en cours. * Une recherche rapide sur Google montrerait cette documentation et des références supplémentaires concernant ce problème. Veuillez faire plus d'efforts de recherche avant de poser votre prochaine question. [Combien d'efforts de recherche sont attendus des utilisateurs de Stack Overflow?] (Https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users) – tnw

Répondre

2

Au lieu d'utiliser trim, vous pouvez boucle à travers la chaîne à rechercher les caractères que vous souhaitez supprimer et les remplacer par une chaîne vide:

var alpha = new string[] { "a", "b", "c" }; 
foreach (var c in alpha) 
{ 
    text = text.Replace(c, string.Empty); 
} 
0

trim (char []) ne supprime avant ou arrière caractères, de la même manière que Trim() supprime les espaces blancs avant/arrière. Dès que Trim frappe un personnage qui n'est pas dans le tableau, il s'arrête (travaillant à la fois par l'avant et par l'arrière). Pour se débarrasser de vos personnages souhaités de n'importe où, vous devez utiliser soit Remplacer ou Regex.

0

Vous pouvez utiliser Regex.

Au lieu de

string filterAlphabet = text.Trim(alpha); 

Utilisez regex pour remplacer a, b, c

string filterAlphabet = Regex.Replace(text,"[abc]",string.Empty); 
+1

@ DaveBecker Vous avez raison.J'ai mis à jour. –