Qt学习之--QString

    QString在Qt出镜相当之高,几乎无处没有它的影子。QString是Qt中最常用的用于处理与存储字符串对象。在本小节中,与笔者一起学习它的使用方法。

1. 字符串连接

(1)使用+=

QString str = "User: ";
str += userName + "\n";
(2)使用append

str = "User: ";
str.append(userName);
str.append("\n");

2. 格式化

(1)使用sprintf

str.sprintf("%s %.1f%%" , "perfect competition", 100.0);
(2)使用arg()

str = QString("%1 %2 (%3s-%4s)\n")
        .arg("permissive")
        .arg("society")
        .arg(1950)
        .arg(1970);

3. 与数值之间的转换

(1)数值-->字串

str = QString::number(59.3);
str.setNum(293.4);

    可以带参。对于整数,可以设置进制,如2进制,8进制之类。对于浮点数,可以设置其精度。

(2)字串-->数值

    通用格式: QString::to<DataType>(bool *isOK);  如:

bool isOk;
double d = str.toDouble(&isOk);
int i = str.toInt(&isOk);

4. 字串提取

(1)从字符串中提取指定位置的字符串

str = "polluter pays principle";
cout << str.mid(9, 4) << endl;  // 从第9位开始取4个字符: pays
cout << str.mid(9) << endl;     // 从第9位开始取后面的所有字符串: pays principle
cout << str.left(8) << endl;    // 取前8个字符: polluter
cout << str.right(9) << endl;   // 取后9个字符: principle
(2)字串定位
str = "the middle bit";
int i = str.indexOf("middle");
    上面的代码返回4。若没有找到指定的字串,则反回-1。


5. 字串检查

if (url.starstWith("http:") && url.endsWith(".png"))
    判断字串是否是以"http:"开头,以".png"结尾的字串。


6. 大小字转换: toLower(), toUpper()

7. 替换: replace()

8. 去除字串两边的空格

str = " \t Hi, I am fine. \n";
cout << str;
cout << str.trimmed();
    输出结果,去除了字串前后两边的空格、制表符、换行符。

    注:str 本身没有发生变化。

9. 拆分与合并

(1)拆分,通过split()函数将QString拆分成QStringList。

str = "Peter,John,Lily,Lucy,Ken";
QStringList slist = str.split(',');

    将上述的人名通过','进行拆分。

(2)合并

QStringList slist;
slist.append("Shanghai");
slist.append("Beijing");
slist.append("Shengzhen");
QString str1 = slist.join("/"); QString str1 = slist.join("/");
cout << str1;

    将QStringList成员中所有QString单无用"/"合并成一个QString。

10. 字符串与QString转换

(1)字符串转QString,这个过程通常是自动转换的。

QString str1("hello");
QString str2 = "Hi";

(2)QString转字符串

str = "hevake_lcj";
printf("User: %s\n", str.toAscii().data());
printf("User: %s\n", str.toAscii().constData());
printf("User: %s\n", qPrintable(str));
  



你可能感兴趣的:(qt,QString,QStringLst)