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 = Welcome
str.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中