QT QSting的用法

目录

一、创建

二、插入

三、删除

四、修改

五、查找

六、截取字符

七、字符串与数字转换

八、判断字符串是否存在,是否为空

九、测试代码:


 

一、创建

QString str1 = "Hello1";
QString str2 = QString("%1 to %2").arg("Welcome").arg("QT!");

二、插入

//1、插入字符 在X位置插入字符串
qDebug() << str.insert(0," Insert ");
//2、在字符串起始处插入另一个字符串
qDebug() << str.prepend(" Hello ");
//3、在字符串起末尾插入另一个字符串
qDebug() <<  str.append(" End ");

三、删除

//1、清空字符串
str.clear();  
//2、移除某一位开始后的几个字符
str.remove(0,1);
//3、移除字符串中的某一种字符
str.remove('2');
//4、去除字符串两端的空白字符
qDebug() << str.trimmed();
//5、去除字符串两端的空白字符,使用单个空格‘ ’代替字符串中出现的空白字符
qDebug() << str.simplified();

四、修改

//1、替换字符串
//用参数3替换掉原字符串0位置开始后面的2个字符
str.replace(0,2,"qwer");
//2、拼接两个字符串
str = str + "abc";
str += "abc";
//3、拼接两个字符串
str.sprintf("%s--%s","Welcome ","to QT!");

五、查找

//1、查找字符串是否以指定字符串开头,参数2大小写敏感,返回值是bool
qDebug() << str.startsWith("AB",Qt::CaseSensitive);
//2、查找字符串是否以指定字符串结尾,参数2大小写敏感,返回值是bool
qDebug() << str.endsWith("EF",Qt::CaseSensitive);
//3、查找字符串中是否出现指定字符串,参数2大小写敏感,返回值是bool
qDebug() << str.contains("EF",Qt::CaseSensitive);
//4、从哪位开始查找字符串;成功返回匹配字符串的下标。失败返回-1;
qDebug() <<  str.indexOf("He",0);

六、截取字符

//1、截取从左开始的3个字符
qDebug() << str.left(3);
//2、截取从右开始的3个字符
qDebug() << str.right(3);
//3、截取从下标1开始的6个字符
qDebug() << str.mid(1,6);
//4、将字符串按'e',分割成几块,选下标1开始的块,到下标1的块结束
qDebug() << str.section('e',1,1);
//5、将字符串按'e',分割成几块,存到QStringList中
QStringList list = str.split('e');
for (int i = 0; i < list.count(); ++i) {
     qDebug() << list.at(i);
}

七、字符串与数字转换

//1、字符串转换数字
str = "123";
bool ok = false;
//将字符串转换成int类型,参数1代表转换成功与否,参数2,代表字符串是几进制数
//将16进制 123 转换成10进制数
//同样的还有 toDouble();toFloat();toLong();toLongLong()等
int tempInt = str.toInt(&ok,16);

//2、数字转字符串
//将十进制转为八进制数,存到str中
str.setNum(16,8);
qDebug() << str;

double numScientific = 456.78999;
//将数字numScientific用科学计数法表示,保留5位小数,存到str中
str.setNum(numScientific, 'e', 5);
qDebug()<<"Scientific: "<<str;

//将数字numFixed,保留7位小数,存到str中
double numFixed = 123.78999;
str.setNum(numFixed, 'd', 7);
qDebug()<<"Fixed: "<<str;

八、判断字符串是否存在,是否为空

//判断字符串是否存在
qDebug() << QString().isNull();             // returns true
qDebug() << QString("").isNull();           // returns false
qDebug() << QString("hello").isNull();      // returns false

//判断字符串是否为空
qDebug() <<QString().isEmpty();            // returns true
qDebug() <<QString("").isEmpty();          // returns true
qDebug() <<QString("Q").isEmpty();         // returns false
qDebug() <<QString("hello").isEmpty();     // returns false

九、测试代码:

#include <QCoreApplication>
#include <QString>
#include <QStringList>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    //创建
    QString str = "";
    QString str2 = QString("%1 to %2").arg("Welcome").arg("QT!");
    qDebug() << "QString(\"%1 to %2\").arg(\"Welcome\").arg(\"QT!\") " << str2;

    //插入
    qDebug() << "插入 str = " << str;
    //插入字符 在0位置插入字符串
    qDebug() << "insert "<<str.insert(0," Insert ");
    //在字符串起始处插入另一个字符串
    qDebug() << "prepend " << str.prepend(" Hello ");
    //在字符串起末尾插入另一个字符串
    qDebug() << "append "  << str.append(" End ");

    //删除
     qDebug() << "删除 str = " << str;
    //1、清空字符串
    str.clear();
    qDebug() << "clear "   << str;
    //2、移除某一位开始后的几个字符
    str = " AB   CD ";
    qDebug() << "remove " << str.remove(0,1);
    //3、移除字符串中的某一种字符
    str = " AB   CD ";
    qDebug() << "remove "  << str.remove('2');
    //4、去除字符串两端的空白字符
    str = " AB   CD ";
    qDebug() << "trimmed "  << str.trimmed();
    //5、去除字符串两端的空白字符,使用单个空格‘ ’代替字符串中出现的空白字符
    str = " AB   CD ";
    qDebug() << "simplified "  << str.simplified();

    //修改
    qDebug() << "修改 str = " << str;
    //1、替换字符串
    //用参数3替换掉原字符串0位置开始后面的2个字符
    str = "ABC";
    qDebug() << "replace "  << str.replace(0,2,"FGH");
    //2、拼接两个字符串
    str = str + "abc";
    qDebug() << "+ "  << str;
    str += "abc";
    qDebug() << "+= "  << str;
    //3、拼接两个字符串
    str.clear();
    str.sprintf("%s--%s","Welcome ","to QT!");
    qDebug() << "sprintf str = " << str;
    //查找
    str = "ABCEF";
    qDebug() << "查找 str = " << str;
    //1、查找字符串是否以指定字符串开头,参数2大小写敏感,返回值是bool
    qDebug() << "startsWith "  << str.startsWith("AB",Qt::CaseSensitive);
    //2、查找字符串是否以指定字符串结尾,参数2大小写敏感,返回值是bool
    qDebug() << "endsWith "  << str.endsWith("EF",Qt::CaseSensitive);
    //3、查找字符串中是否出现指定字符串,参数2大小写敏感,返回值是bool
    qDebug() << "contains "  << str.contains("EF",Qt::CaseSensitive);
    //4、从哪位开始查找字符串;成功返回匹配字符串的下标。失败返回-1;
    qDebug() << "indexOf "  <<  str.indexOf("CE",0);

    //截取
    str = "ABCEF";
    qDebug() << "截取 str = " << str;
    //1、截取从左开始的3个字符
    qDebug() << "left "  << str.left(3);
    //2、截取从右开始的3个字符
    qDebug() << "right "  << str.right(3);
    //3、截取从下标1开始的6个字符
    qDebug() << "mid "  << str.mid(1,4);
    //4、将字符串按'e',分割成几块,选下标1开始的块,到下标1的块结束
    qDebug() << "section "  << str.section('E',1,1);
    //5、将字符串按'e',分割成几块,存到QStringList中
    QStringList list = str.split('E');
    for (int i = 0; i < list.count(); ++i) {
         qDebug() << "split "  << list.at(i);
    }

    //字符串与数字转换
    //1、字符串转换数字
    str = "123";
    bool ok = false;
    //将字符串转换成int类型,参数1代表转换成功与否,参数2,代表字符串是几进制数
    //将16进制 123 转换成10进制数
    //同样的还有 toDouble();toFloat();toLong();toLongLong()等
    int tempInt = str.toInt(&ok,16);
    qDebug() << "toInt "  << tempInt;

    //2、数字转字符串
    //将十进制转为八进制数,存到str中
    qDebug() << "将十进制转为八进制数,存到str中 "  << str.setNum(16,8);

    double numScientific = 456.78999;
    //将数字numScientific用科学计数法表示,保留5位小数,存到str中
    str.setNum(numScientific, 'e', 5);
    qDebug() << "将数字numScientific用科学计数法表示,保留5位小数,存到str中 " <<"Scientific: "<<str;

    //将数字numFixed,保留7位小数,存到str中
    double numFixed = 123.78999;
    str.setNum(numFixed, 'd', 7);
    qDebug() << "将数字numFixed,保留7位小数,存到str中 " <<"Fixed: "<<str;
    return a.exec();
}
发布了44 篇原创文章 · 获赞 54 · 访问量 7058

猜你喜欢

转载自blog.csdn.net/Liu_Xiao_Ming/article/details/103267177