Comment supprimer/Job de/home/admin/job0/Job
QString name = "/home/admin/job0/Job"
Je veux enlever la dernière chaîne après "/"
Recherchez la dernière barre oblique avec QString :: lastIndexOf . Après cela, obtenez la sous-chaîne avec QString :: left jusqu'à la position de la dernière occurrence de slash
QString name = "/home/admin/job0/Job";
int pos = name.lastIndexOf(QChar('/'));
qDebug() << name.left(pos);
Cela va imprimer:
"/home/admin/job0"
Vous devez vérifier int pos pour -1 pour vous assurer que la barre oblique a été trouvée.
Pour inclure la dernière barre oblique dans la sortie, ajoutez +1 à la position trouvée
qDebug() << name.left(pos+1);
Est-ce que la sortie:
"/home/admin/job0/"
Vous avez QString :: chop () pour le cas où vous connaissez déjà le nombre de caractères à supprimer.
Il est identique à QString::remove()
, fonctionne simplement à l’arrière de la chaîne.
Peut-être le plus facile à comprendre pour les lecteurs ultérieurs serait probablement:
QString s("/home/admin/job0/Job");
s.truncate(s.lastIndexOf(QChar('/'));
qDebug() << s;
comme le code dit littéralement ce que vous vouliez.
Vous pouvez faire quelque chose comme ça:
QString s("/home/admin/job0/Job");
s.remove(QRegularExpression("\\/(?:.(?!\\/))+$"));
// s is "/home/admin/job0" now