Je vois à l'aide de la visionneuse d'objet Visual Studio que ma chaîne est la suivante: Ce que j'ai besoin d'obtenir le texte du début à l'endroit où se trouve la nouvelle ligne. P> Voici Ce que j'ai essayé, mais la méthode Indexof () renvoie -1, ce qui signifie qu'une nouvelle ligne n'est pas trouvée. p> Toute idée sur la manière de l'accomplir? P > p>
4 Réponses :
C'est parce que Environnement.NewLine code> représente \ r \ n code> (un flux de ligne de retour de chariot + alimenter) alors que vous avez uniquement une alimentation en ligne dans votre chaîne source. Modifiez la deuxième ligne à ceci: var x = stringEx.IndexOf("\n");
Si vous exécutez sur une plate-forme Windows, Environnement. Newline recherchera "\ r \ n".
essayez de rechercher \ n à la place: p>
Si vous voulez juste que la première ligne de la chaîne, vous pouvez le faire:
static string GetFirstLine(string text)
{
int? newlinePos = GetIndex(text, "\r") ?? GetIndex(text, "\n");
if (newlinePos.HasValue)
{
return text.Substring(0, newlinePos.Value);
}
return text;
}
// Not really necessary -- just a convenience method.
static int? GetIndex(string text, string substr)
{
int index = text.IndexOf(substr);
return index >= 0 ? (int?)index : null;
}
Voici un moyen général de le faire qui va supprimer em> une nouvelle ligne et tout après la fin de la chaîne, mais uniquement lorsqu'une nouvelle ligne existe dans la chaîne: int x = stringEx.IndexOf("\n");
if (x > 0) {
stringEx= stringEx.Remove(x);
}
@Sergio, je me rendais au CR + LF \ R \ N Windows Linebreak Vs. Nix Single Caractic Line Breaks, mais vous avez des réponses maintenant!