C# sous-chaînes: Retrait des trois premiers caractères
J'ai une chaîne qui je voudrais enlever les trois premiers personnages de. Comment puis-je aller à ce sujet à l'aide des sous-chaînes, ou est-il un autre moyen?
string temp = "01_Barnsley"
string textIWant = "Barnsley"
Merci
- Nous avons besoin de commencer le balisage de ces questions que
frist-psot
(à la Slashdot) compte tenu de la faute de frappe incrusté de course à répondre dans les résultats. Mélangez puis modifier le délire! - Êtes-vous sûr de vouloir supprimer les trois premiers caractères? Il me semble que vous êtes plus intéressé par la suppression de tout jusqu'à (et y compris) le premier caractère de soulignement.
- Cette question est trop profonde pour DONC. Je veux dire, qu'est-ce que Google?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
String.Substring(Int32)
méthode.Voici un
démonstration
.Comme alternative, vous pouvez utiliser
String.Méthode Remove(Int32 Int32)
méthode aussi.Voici un
démonstration
.vous pouvez utiliser Chaîne de caractères.Méthode Sous-Chaîne (Int32)
ou
Chaîne de caractères.Méthode Remove (Int32 Int32)
Si il est un modèle pour les données, on peut l'utiliser pour extraire ce qui est nécessaire à l'aide d'Expressions Régulières.
Donc, si l'on sait qu'il y a des numéros (
\d
regex pour les chiffres et avec 1 ou plus avec un+
), suivie par un sous bar; c'est le motif pour exclure. Maintenant nous raconter l'analyseur de ce que nous voulons pour capturer en disant: nous voulons un match du groupe à l'aide de( )
notation. Au sein de ce sous groupe de nous dire de capturer tout en utilisant.+
. La période (.
) signifie n'importe quel caractère et la+
comme vu précédemment signifie 1 ou plus.La correspondance complète de l'ensemble du motif (pas ce que nous voulons) est regroupé à l'indice zéro. Nous voulons que le premier sous-groupe correspondent à l'indice 1 qui est de nos données.
Avis de la façon dont nous n'avez pas à vous inquiéter si plus de deux chiffres? Considérant que la sous-chaîne peut échouer parce que le nombre a augmenté, il n'est pas un problème pour la regex analyseur en raison de la flexibilité que l'on retrouve dans notre modèle.
Résumé
Si il y a un modèle distinct pour les données, et les données peuvent changer, utiliser les regex. Le minimum de la courbe d'apprentissage peut payer grassement. Si vous avez vraiment juste besoin de quelque chose à un point précis qui est immuable, l'utilisation de sous-chaîne.
Une solution à l'aide de LINQ: