字符串QString的使用

字符串QString的使用

1.字符串的操作

字符串的操作一般包括追加、插入、替换、删除等。

1.1 “+=”

函数原型:

QString &operator+=(const QString &other)
QString &operator+=(QChar ch)
QString &operator+=(const QStringRef &str)
QString &operator+=(QLatin1String str)
QString &operator+=(const char *str)
QString &operator+=(const QByteArray &ba)
QString &operator+=(char ch)

函数作用:

同append,实现字符串的追加。

使用示例:

QString x = "free";
QString y = "dom";
x += y;
// x == "freedom"

源码解析:

inline QString &operator+=(const QString &s)
{
    return append(s);
}

运算符重载,其源码对应的就是append()函数。

1.2 append()

函数原型:

QString & append(const QString &str)
QString & append(const QChar *str, int len)
QString & append(QChar ch)
QString & append(const QStringRef &reference)
QString & append(QLatin1String str)
QString & append(const char *str)
QString & append(const QByteArray &ba)

函数作用:

"+=",实现字符串的追加。

使用示例:

QString x = "free";
printf(%p\n”,&s);// 查看字符串内存地址
fflush(stdout);        //  刷新输出流
QString y = "dom";
x.append(y);           // x == "freedom“
printf(%p\n”,&s);// 拼接之后内存地址不变
fflush(stdout);
qDebug() << x;
qDebug() << y;
1.3 arg()

函数原型:

QString arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' ')) const
QString arg(char a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(QChar a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(QStringView a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(QLatin1String a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(const QString &a1, const QString &a2) const
QString arg(const QString &a1, const QString &a2, const QString &a3) const
QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4) const
QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5) const
QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6) const
QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7) const
QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8) const
QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8, const QString &a9) const

函数作用:

可以使用指定参数进行格式替代来完成字符串组合。

使用示例:

QString str;
str = "%1 %2";
str.arg("%1f", "Hello");        // returns "%1f Hello"
str.arg("%1f").arg("Hello");    // returns "Hellof %2"

str = "%1%3%2";
str.arg("Hello").arg(20).arg(50); // returns "Hello500"
str = "%1%2%3";
str.arg("Hello").arg(50).arg(20); // returns "Hello5020"

str = "%1%3%2";
str.arg("Hello", QString::number(20), QString::number(50)); // returns "Hello5020"
1.4 insert()

函数原型:

QString &insert(int position, const QString &str)
QString &insert(int position, const QChar *unicode, int size)
QString &insert(int position, QChar ch)
QString &insert(int position, const QStringRef &str)
QString &insert(int position, QLatin1String str)
QString &insert(int position, const char *str)
QString &insert(int position, const QByteArray &str)

函数作用:

可以在指定位置处插入指定数据

使用实例:

QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal"
qDebug() << str;
1.5 replace()

函数原型:

QString &replace(int position, int n, const QString &after)
QString &replace(int position, int n, const QChar *unicode, int size)
QString &replace(int position, int n, QChar after)
QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(const QRegExp &rx, const QString &after)
QString &replace(const QRegularExpression &re, const QString &after)

函数作用:

可以将字符串中的内容进行替换

使用示例:

QString x = "Say yes!";
QString y = "no";
x.replace(4, 3, y);
// x == "Say no!"
1.6 remove()

函数原型:

QString &remove(int position, int n)
QString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &remove(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &remove(const QRegExp &rx)
QString &remove(const QRegularExpression &re)

函数作用:

可以删除字符串中的某些内容

使用示例:

QString s = "Montreal";
s.remove(1, 4);
// s == "Meal"

r = "Ali Baba";
r.remove(QChar('a'), Qt::CaseInsensitive);
// r == "li Bb"

r = "Telephone";
r.remove(QRegExp("[aeiou]."));
// r == "The"

r = "Telephone";
r.remove(QRegularExpression("[aeiou]."));
// r == "The"

2. 字符串的查询

2.1 startsWith()

函数原型:

startsWith()

函数作用:

判断字符串是否以指定内容开头,如果是,返回true,否则,返回false

使用示例:

QString str = "https://www.baidu.com";
bool v = str.startsWith("https://"); // returns true
qDebug()<< v;
v = str.startsWith("http://"); // returns false
qDebug()<< v;
2.2 endsWith()

函数原型:

endsWith()

函数作用:

判断字符串是否以指定内容结尾,如果是返回true,否则返回false

使用示例:

QString str = "12345@qq.com";
bool v = str.endsWith("@qq.com"); // returns true
qDebug()<< v;
v = str.startsWith("@126.com"); // returns false
qDebug()<< v;
2.3 contains()

函数原型:

contains()

函数作用:

判断一个字符串是否包含另外一个子串,如果包含返回true,否则返回false

使用示例:

QString str = "Peter Pan";
str.contains("peter", Qt::CaseInsensitive); // returns true

源码分析:

inline bool QStringRef::contains(const QString &s, Qt::CaseSensitivity cs) const
{
    return indexOf(s, 0, cs) != -1;
}

3. 字符串的转换

3.1 toInt()

函数原型:

int toInt(bool*ok=nullptr, intbase=10) const;

函数作用:

将字符串转换为int类型,可以通过设置参数接受转换的结果,也可以通过参数用来设置进制

使用示例:

QString str = "123";
int v = str.toInt();
qDebug()<<v;
str = "FF";
bool ok;
v = str.toInt(&ok,16);
qDebug()<<v<<","<<ok;
3.2 大小写转换

与标准C语言一致,小写转为大写同样可以调用toUpper()函数实现,小写的话可以使用toLower()函数实现。

函数原型:

toUpper()
toLower()

函数作用:

将字符串转换为大写。
将字符串转换为小写。

使用示例:

QString str = "The Qt PROJECT";
str = str.toLower();
qDebug()<<str; // str == "the qt project"
str = str.toUpper();
qDebug()<<str; // str == "THE QT PROJECT"
3.3 toUtf8()

函数原型:

toUtf8()

函数作用:

基于UTF8编码格式将字符串进行转换。

使用示例:

QString str = "abcABC";
QByteArray array = str.toUtf8();
foreach (int var, array)
{
    qDebug()<<var;//97 98 99 65 66 67
}
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值