/ home/admin/job0/Jobから/ 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 posfor-1をチェックして、スラッシュがまったく見つかりました。
出力に最後のスラッシュを含めるには、+ 1を元の位置に追加します
qDebug() << name.left(pos+1);
出力されます:
"/home/admin/job0/"
QString :: chop() は、削除する文字数がすでにわかっている場合に使用します。
これはQString::remove()
と同じで、文字列の後ろから動作します。
おそらく、後の読者にとって最も理解しやすいのは次のとおりでしょう。
QString s("/home/admin/job0/Job");
s.truncate(s.lastIndexOf(QChar('/'));
qDebug() << s;
コードが文字通りあなたが意図したことを言うように。
次のようなことができます:
QString s("/home/admin/job0/Job");
s.remove(QRegularExpression("\\/(?:.(?!\\/))+$"));
// s is "/home/admin/job0" now