C'è qualche funzione in C# che rimuovono da stringa su indice specifico, ad esempioRimozione char nella stringa da indice specifico
string s = "This is string";
s.RemoveAt(2);
s è ora "Ths è stringa"
???
C'è qualche funzione in C# che rimuovono da stringa su indice specifico, ad esempioRimozione char nella stringa da indice specifico
string s = "This is string";
s.RemoveAt(2);
s è ora "Ths è stringa"
???
string s = "This is string";
s = s.Remove(2, 1);
uscita: Ths is string
1st parameter
è la starting index
da cui si desidera rimuovere il carattere e secondo parametro è la number of character
che si desidera rimuovere
C'è il metodo String.Remove
:
s = s.Remove(2, 1);
Puoi scrivere la tua estensione per questo utilizzando il Remove Metodo:
public static class MyStringExtensions
{
public static string RemoveAt(this string s, int index)
{
return s.Remove(index, 1);
}
}
utilizzo:
string s = "This is string";
s = s.RemoveAt(2);
si potrebbe usare anche espressioni regolari.
Console.WriteLine(Regex.Replace("This is string", @"(?<=^.{2}).", ""));
Questo rimuoverebbe il terzo carattere dall'inizio.
Come molti altri hanno detto, c'è un metodo Remove
. Quello che gli altri post non hanno spiegato è che le stringhe in C# sono immutabili - non puoi cambiarle.
Quando si chiama Remove
, in realtà viene restituita una nuova stringa ; non modifica la stringa esistente. Dovrai assicurarti di prendere l'output di Remove
e assegnarlo a una variabile o restituirlo ... semplicemente chiamando Remove
da solo non cambia la stringa.
Una regex è eccessivo per questa situazione. –
yep d'accordo regex è un overkill. Penso che l'op sta chiedendo delle possibilità. –
... la cosa buona è che funziona per quasi tutti i linguaggi di programmazione che penso. Non lo sapevo così bello che hai postato anche questa possibilità. – t3chb0t