QString删除最后一个字符

时间:2017-11-09 12:00:00

标签: qt qstring

如何从/ home / admin / job0 / Job

中删除/作业
QString name = "/home/admin/job0/Job"

我想在“/”

之后删除最后一个字符串

4 个答案:

答案 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