Est-il un moyen pour supprimer un caractère qui vient d'être écrit à l'aide de la Console.WriteLine?
Est-il un moyen pour supprimer le dernier caractère de la console, c'est à dire
Console.WriteLine("List: apple,pear,");
//Somehow delete the last ',' character from the console.
Console.WriteLine(".");
//Now the console contains "List: apple,pear."
Sûr, je pourrais créer une chaîne d'abord, puis l'imprimer à la console, mais je suis juste curieux de voir si je peux supprimer les caractères directement à partir de la console.
- Par ailleurs, si vous utilisez le
string.Join
méthode, alors vous n'aurez pas à vous soucier de ce surplus de virgule à la fin.Console.WriteLine("List: " + string.Join(",", fruitArray) + ".");
Vous devez vous connecter pour publier un commentaire.
"\b" est l'ASCII de la touche retour arrière. Imprimer sauvegarder un char.
sorties "AbDef";
Comme l'a souligné Contango et Sammi, il y a des moments où les écraser avec un espace est nécessaire:
Console.Write("\b \b");
est probablement ce que vous voulez. Il supprime le dernier char et déplace le curseur en arrière.La
\b
backspace caractère d'échappement ne déplace le curseur en arrière. Il ne'remove le dernier char. DoncConsole.Write("\b");
ne déplace le curseur d'un dos, laissant le dernier caractère encore visibles.Console.Write("\b \b");
cependant, la première déplace le curseur en arrière, puis écrit un caractère d'espacement qui remplace le dernier char et déplace le curseur vers l'avant à nouveau. Nous avons donc écrit un deuxième\b
à déplacer le curseur en arrière de nouveau. Maintenant, nous avons fait ce que la touche retour arrière fait normalement.Cela fera l'affaire si vous utilisez
Write
au lieu deWriteLine
.Mais en fait, vous avez beaucoup de contrôle sur la console. Vous pouvez écrire sur n'importe quel endroit que vous souhaitez. Utilisez simplement le
Console.SetCursorPosition(int, int)
méthode.si vous souhaitez supprimer un seul char que vous pouvez utiliser:
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
etConsole.Write()
de nouveau.si vous souhaitez supprimer plus d'un char, comme un automatisme, vous pouvez mémoriser la
Console.CursorLeft
dans une variable et utiliser cette valeur dansConsole.SetCursorPosition(--variablename, Console.CursorTop)
dans une boucle pour supprimer plusieurs caractères que vous voulez!Les solutions ci-dessus fonctionne très bien, sauf si vous êtes une itération à travers un ou boucle foreach. Dans cette situation, vous devez utiliser une approche différente, comme
Il n'a, cependant, des travaux sont bien aussi pour une chaîne de jointure.
Exemples:
De supprimer correctement un personnage sur la console utiliser
Ce sera correctement supprimer le caractère avant le curseur et déplacer tous les caractères suivants en arrière.
À l'aide de
vous ne remplacez que le caractère avant le curseur par un espace blanc et pas vraiment supprimer il!
Vous pourriez effacer la console, puis d'écrire la nouvelle sortie.