QString удалить последние символы

Вопрос: Как удалить /Job из /home/admin/job0/Job QString name = "/home/admin/job0/Job" Я хочу удалить последнюю строку после "/" Лучший ответ: Найти последний слэш с помощью QString :: lastIndexOf. После этого получим подстроку с QString :: left до позиции последнего появления косой черты QString name = "/home/admin/job0/Job"; int pos = name.lastIndexOf(QChar('/')); qDebug()

Вопрос:

Как удалить /Job из /home/admin/job0/Job

QString name = «/home/admin/job0/Job»

Я хочу удалить последнюю строку после “/”

Лучший ответ:

Найти последний слэш с помощью QString :: lastIndexOf. После этого получим подстроку с QString :: left до позиции последнего появления косой черты

QString name = «/home/admin/job0/Job»; int pos = name.lastIndexOf(QChar(‘/’)); qDebug() << name.left(pos);

Это напечатает:

«/home/admin/job0»

Вы должны проверить int pos для -1, чтобы убедиться, что косая черта найдена вообще.

Чтобы включить последний косой черты в выводе, добавьте +1 в установленное положение

qDebug() << name.left(pos+1);

Вывод:

«/home/admin/job0/» Ответ №1

У вас есть QString :: chop() для случая, когда вы уже знаете, сколько символов нужно удалить.
Это то же самое, что и QString::remove(), просто работает с обратной стороны строки.

Ответ №2

Может быть, проще всего понять для более поздних читателей, вероятно, будет:

QString s(«/home/admin/job0/Job»); s.truncate(s.lastIndexOf(QChar(‘/’)); qDebug() << s;

так как буквенный код говорит, что вы намеревались.

Ответ №3

Вы можете сделать что-то вроде этого:

QString s(«/home/admin/job0/Job»); s.remove(QRegularExpression(«\/(?:.(?!\/))+$»)); // s is «/home/admin/job0» now

Оцените статью
Добавить комментарий