183 votes

Get Substring - tout avant certains caractères

J'essaie de trouver le meilleur moyen de tout obtenir avant le caractère d'une chaîne. Quelques exemples de chaînes sont ci-dessous. La longueur de la chaîne avant - varie et peut être n'importe quelle longueur

 223232-1.jpg
443-2.jpg
34443553-5.jpg
 

J'ai donc besoin de la valeur comprise entre l'indice de début 0 et juste avant -. Donc, les sous-chaînes deviendraient 223232, 443 et 34443553

190voto

Fredou Points 9553
    static void Main(string[] args)
    {
        string s = "223232-1.jpg";
        Console.WriteLine(sep(s));
        s = "443-2.jpg";
        Console.WriteLine(sep(s));
        s = "34443553-5.jpg";
        Console.WriteLine(sep(s));

    Console.ReadKey();
    }

    public static string sep(string s)
    {
        int l = s.IndexOf("-");
        if (l >0)
        {
            return s.Substring(0, l);
        }
        return "";

    }

180voto

Dominic Cronin Points 3451

Utilisez la fonction split .

 static void Main(string[] args)
{
    string s = "223232-1.jpg";
    Console.WriteLine(s.Split('-')[0]);
    s = "443-2.jpg";
    Console.WriteLine(s.Split('-')[0]);
    s = "34443553-5.jpg";
    Console.WriteLine(s.Split('-')[0]);

Console.ReadKey();
}
 

Si votre chaîne n'a pas - alors vous aurez la chaîne entière.

80voto

BrainCore Points 1936
String str = "223232-1.jpg"
int index = str.IndexOf('-');
if(index > 0) {
    return str.Substring(0, index)
}

8voto

Michael Petrotta Points 35647

Une façon de faire est d'utiliser String.Substring avec String.IndexOf :

 int index = str.IndexOf('-');
string sub;
if (index >= 0)
{
    sub = str.Substring(0, index);
}
else
{
    sub = ... // handle strings without the dash
}
 

En partant de la position 0, renvoyez tout le texte jusqu'au tiret, en l’incluant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X