Je veux remplacer la première occurrence dans une chaîne donnée.
Comment puis-je réaliser cela en .NET ?
Je veux remplacer la première occurrence dans une chaîne donnée.
Comment puis-je réaliser cela en .NET ?
On suppose que AA
ne doit être remplacé que s'il se trouve au tout début de la chaîne :
var newString;
if(myString.StartsWith("AA"))
{
newString ="XQ" + myString.Substring(2);
}
Si vous devez remplacer la première occurrence de AA
que la chaîne de caractères commence par ce mot ou non, suivez la solution de Marc.
Et parce qu'il y a aussi VB.NET à considérer, je voudrais vous proposer :
Private Function ReplaceFirst(ByVal text As String, ByVal search As String, ByVal replace As String) As String
Dim pos As Integer = text.IndexOf(search)
If pos >= 0 Then
Return text.Substring(0, pos) + replace + text.Substring(pos + search.Length)
End If
Return text
End Function
L'une des surcharges de Regex.Replace
prend un int
pour "Le nombre maximum de fois que le remplacement peut se produire". De toute évidence, l'utilisation de Regex.Replace
pour le remplacement du texte brut peut sembler exagéré, mais il est certainement concis :
string output = (new Regex("AA")).Replace(input, "XQ", 1);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Veuillez rédiger des messages clairs et compréhensibles. J'ai également édité celui-ci pour vous. Vous auriez dû spécifier une langue au moins ici.
0 votes
Bien sûr, ce n'est jamais remplacés ... il s'agit toujours d'une nouvelle chaîne contenant l'original avec le texte remplacé. C'est parce que les chaînes de caractères sont immuables.
0 votes
J'ai essayé la méthode ` String.Replace()`, mais elle remplace tous les "AA" par des "XQ".
2 votes
Cette question - stackoverflow.com/questions/141045/ - révèle tout ce qu'il faut faire
0 votes
Remplacez-vous toujours les deux premiers caractères de la chaîne ? Ou y a-t-il des chaînes qui ne commencent pas par "AA" ? Y a-t-il des cas où vous devez remplacer "AA" alors qu'il apparaît au milieu de la chaîne (comme "YZAA123" -> "YZXQ123") ?
1 votes
Note : fusion avec une autre question similaire qui utilisait "AA" => "XQ" comme exemples à trouver/remplacer.
0 votes
@Marc Gravell - Cette question ne devrait-elle pas être étiquetée C# également ?