如何从/ home / admin / job0 / Job
中删除/作业QString name = "/home/admin/job0/Job"
我想在“/”
之后删除最后一个字符串答案 0 :(得分:8)
如果您已经知道需要删除多少个字符,则表示QString::chop()
它与QString::remove()
相同,只是从字符串的后面开始。
答案 1 :(得分:7)
使用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/"
答案 2 :(得分:3)
对于以后的读者来说,最容易理解的可能是:
QString s("/home/admin/job0/Job");
s.truncate(s.lastIndexOf(QChar('/'));
qDebug() << s;
因为代码文字说明了你的意图。
答案 3 :(得分:1)
您可以这样做:
QString s("/home/admin/job0/Job");
s.remove(QRegularExpression("\\/(?:.(?!\\/))+$"));
// s is "/home/admin/job0" now