QString字符串如何移除最后一位

当我们基于Qt开发项目时,经常会用到QString这个类按照某种格式对字符串进行拼接,拼接完后有时候最后一位是多余的,就需要把最后一位给移除。 以下是不同实现方法: 方法一: 使用QString的left()函数,left()的作用是获取字符串左边n个字符。获取总个数减一个字符就相当于去除了最后一个字符。例:

QString str("hello world,");
QString strTmp = str.left(str.size()-1);
qDebug().noquote() << "strTmp:" << strTmp;

如果字符串是汉字,则删除最后一个完整的汉字。 方法二: 使用QString的chop()函数,chop()的作用就是删除字符串右边n个字符。例:

QString str("hello world,");
QString strTmp = str.chop(1);
qDebug().noquote() << "strTmp:" << strTmp;

调用chop(),会对字符串本身进行删除。 方法三: 使用QString的remove()函数,remove()有好多重载函数,其中一个是移除某下标开始n个字符。例:

QString str("hello world,");
QString strTmp = str.remove(str.size()-1, 1);
qDebug().noquote() << "strTmp:" << strTmp;

从最后一个下标位置开始移除一个字符也能达到目标。remove虽然有返回值,但str自身也发生了改变。

经验分享 程序员 微信小程序 职场和发展