Qt字符串类QString

来源:互联网 发布:方正排版软件下载 编辑:程序博客网 时间:2024/05/01 21:14

1、字符串QString的成员函数:
(1) “+”“+=”

QString str1 = "Welcome";str1 = str1 + "to you";QString str2 = "hello";str2 += "World";

解析:QString str1 = “Welcome”; 传递给QString一个 const char* 类型的ASCII字符串“Welcome”,这将导致调用QString的构造函数,来初始化一个QString字符串。
在其构造函数中会将const char*的指针用QString::fromAscii()转换成Unicode编码。
此外,在编译应用程序时,也可以通过定义 QT_CAST_FROM_ASCII 宏变量屏蔽该构造函数。如果程序员要求显示给用户的字符串都必须经过 QObject::tr()函数的处理,那么屏蔽QString的这个构造函数是非常有用的。

(2) QSting::append()

QString str1 = "Welcome";QString str2 = "to";str1.append(str2);str1.append("you !");

(3)QString::sprintf()

QString str;str.sprintf("%s", "Welcome");  // str = Welcomestr.sprintf("%s %s", "Welcome", "to you");  // str = Welcome to you

(4)QString::arg() 相比 QString::sprintf(),它类型安全,完全支持Unicode,并且允许改变“%n”参数的顺序

QString str;str = QString("%1 was born in %2.").arg("john").arg("1982"); //str = john was born in 1982.

(5)QString::insert() : 在原字符串特定的位置插入另一个字符串
(6)QString::prepend():在原字符串的开头插入另一个字符串
(7)QString::replace():用指定的字符串代替原字符串中的某些字符

(8)QString::trimmed():移除字符串两端的空白字符
(9)QString::simplified():移除字符串两端的空白字符,使用单个字符“ ”代替字符串中出现的空白字符。

QString str = "  Welcome \t to \n you!   ";str = str.trimmed();      // str = "Welcome \t to \n you!"str = str.simplified();             // str = "Welcome to you!"

(10)QString::startsWith():判断一个字符串是否以某个字符串开头
(11)QString::endsWith(): 判断一个字符串是否以某个字符串结尾

QString str = "Welcome to you!";str.startsWith("Welcome", Qt::CaseSensitive);  //返回true  // 第一个参数指定了一个字符串,第二个参数指定是否大小写敏感

(12)QString::contains():判断一个指定字符串是否出现过

QString str = "Welcome to you";str.contains("Welcome", Qt::Casesensitive);  // 返回true

(13)比较两个字符串
<1> operator < (const QString&):比较一个字符串是否小于另一个字符串,如果是,则返回true
<2> <=、==、>=
<3> localeAwareCompare(const QString&, const QString&):静态函数,比较前后两个字符串。小于,则返回负整数;等于,则返回0;大于,则返回正整数 (通常用于向用户显示一个有序的字符串列表)
<4> compare(const QString&, const QString&, Qt::CaseSensitivity):大小写敏感的字符串比较

(14)字符串的转换
<1> QString::toInt() / toDouble() / toFloat() / toLong() / toLongLong()

qString str = "125";bool ok;int dec = str.toInt(&ok, 10); // 第一个参数是bool指针用于返回转换的状态;第二个参数是转换的基数 (把“125”当做十进制数)// OK = true, dec = 125

<2> QString 提供的 字符编码集 的转换函数 将返回一个 QByteArray(const char*) 构造的对象(一个字节数组)。 QString::ascii(); QString::toLatin1(); QString::toUtf8(); QString::toLocal8Bit()

QString str = "Welcome to you";QByteArray ba = str.toAscii();  //把Unicode编码的字符串转换成ASCII编码的字符串,并存储在ba中
0 0