QString删除最后一个字符

Sij*_*ith 6 qstring qt

如何从/ home/admin/job0/Job中删除/ Job

QString name = "/home/admin/job0/Job"
Run Code Online (Sandbox Code Playgroud)

我想在"/"之后删除最后一个字符串

mek*_*zer 10

当你已经知道要移除多少个字符时,你有QString :: chop().
它是一样的QString::remove(),只是从字符串的后面起作用.


Xpl*_*rms 7

使用QString :: lastIndexOf查找最后一个斜杠.之后使用QString :: left获取子字符串,直到最后一次斜杠出现的位置

QString name = "/home/admin/job0/Job";
int pos = name.lastIndexOf(QChar('/'));
qDebug() << name.left(pos);
Run Code Online (Sandbox Code Playgroud)

这将打印:

"/home/admin/job0"
Run Code Online (Sandbox Code Playgroud)

你应该检查int pos-1,以确保找到了斜线.

要在输出中包含最后一个斜杠,请将+1添加到已建立的位置

qDebug() << name.left(pos+1);
Run Code Online (Sandbox Code Playgroud)

将输出:

"/home/admin/job0/"
Run Code Online (Sandbox Code Playgroud)


tra*_*tor 6

对于后来的读者来说,最容易理解的可能是:

QString s("/home/admin/job0/Job");
s.truncate(s.lastIndexOf(QChar('/'));
qDebug() << s;
Run Code Online (Sandbox Code Playgroud)

因为代码字面上说明了您的意图。