Problema: vogliamo rimuovere n punti esclamativi in una stringa data, da sinistra verso destra.
remove("Hi!",1) === "Hi"
remove("Hi!",100) === "Hi"
remove("Hi!!!",1) === "Hi!!"
remove("Hi!!!",100) === "Hi"
remove("!Hi",1) === "Hi"
remove("!Hi!",1) === "Hi!"
remove("!Hi!",100) === "Hi"
remove("!!!Hi !!hi!!! !hi",1) === "!!Hi !!hi!!! !hi"
remove("!!!Hi !!hi!!! !hi",3) === "Hi !!hi!!! !hi"
remove("!!!Hi !!hi!!! !hi",5) === "Hi hi!!! !hi"
remove("!!!Hi !!hi!!! !hi",100) === "Hi hi hi"
Soluzione |
SelectShow> |
Per risolvere questo esercizio usiamo il metodo Replace della classe System.Text.RegularExpressions.Regex.
public string Replace(
string input,
string replacement,
int count
)
Questo metodo rimpiazza il testo che corrisponde all’espressione regolare specificata fino ad un massimo di n occorrenze, specificate in input. Et voilà, non dobbiamo preoccuparci di indici, lunghezza della stringa e numero di stringhe rimosse.
using System.Text.RegularExpressions;
public class Kata
{
public static string Remove(string s, int n) =>
new Regex("!").Replace(s, string.Empty, n);
}
|