J'ai un StringBuilder
qui accumule du code. Dans certains cas, il y a 2 lignes vides entre les blocs de code, et j'aimerais faire en sorte qu'il n'y ait plus qu'une seule ligne vide.
Comment puis-je vérifier si le code actuel a déjà une ligne vide à la fin ? (Je préfère ne pas utiliser son ToString()
en raison de problèmes de performance).
Réponses
Trop de publicités?
KooKiz
Points
19056
Dave Bish
Points
7943
Dave Thompson
Points
56
Contrôle d'une seule ligne. Utilise un type de chaîne, pas StringBuilder, mais vous devriez comprendre l'idée de base.
if (theString.Substring(theString.Length - Environment.NewLine.Length, Environment.NewLine.Length).Contains(Environment.NewLine))
{
//theString does end with a NewLine
}
else
{
//theString does NOT end with a NewLine
}
DareDevil
Points
1760
Voici l'exemple complet.
class string_builder
{
string previousvalue = null;
StringBuilder sB;
public string_builder()
{
sB = new StringBuilder();
}
public void AppendToStringBuilder(string new_val)
{
if (previousvalue.EndsWith("\n") && !String.IsNullOrEmpty(previousvalue) )
{
sB.Append(new_val);
}
else
{
sB.AppendLine(new_val);
}
previousvalue = new_val;
}
}
class Program
{
public static void Main(string[] args)
{
string_builder sb = new string_builder();
sb.AppendToStringBuilder("this is line1\n");
sb.AppendToStringBuilder("this is line2");
sb.AppendToStringBuilder("\nthis is line3\n");
}
}
- Réponses précédentes
- Plus de réponses