生活随笔
收集整理的這篇文章主要介紹了
QT学习笔记(十一):QString类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
QT學習筆記(十一):QString類
1、概述
1.1 QString 類是 Qt 中用于表示字符串的類,實現在 QtCore 共享庫中。QString 類在實現上有以下特征:
1)字符串采用 Unicode 內部編碼,可以表示世界上大多數語言的文字;
2)字符串的存儲有引用計數,當一個 QString 對象被復制為另一個 QString 對象時,它們實際上指向相同的存儲空間,僅僅是增加一個引用計數;
3)隱式共享:在后臺,QString使用隱式共享來減少內容使用和避免不必要的復制,這也有助于減少儲存16為字符的固有開銷,只有當函數向它寫入時才會復制該數據或者當指向相同存儲空間的多個 QString 對象中的一個要被修改時,才將真正復制一個新的字符串并進行修改。
1.2 構造函數
Qstring(); QString(QChar ch
); QString(const QChar
*pch
, int size
); QString(const QString
&obj
); QString(const char *str
);
參考博客:QT之QString,
官方說明:QString Class
2、編輯操作
編輯操作QT控制臺程序 示例:
#include
<QCoreApplication>
#include
<QDebug>
#include
<QStringList>int main(int argc
, char *argv
[])
{QCoreApplication
a(argc
, argv
);qDebug() << QObject
::tr("以下是編輯字符串操作:") << endl
;QString str
= "hello";qDebug() << QObject
::tr("字符串大小:") << str
.size(); str
[0] = QChar('H'); qDebug() << QObject
::tr("第一個字符:") << str
[0]; str
.append(" Qt"); str
.replace(1,4,"i"); str
.insert(2," my"); qDebug() << QObject
::tr("str為:") << str
; str
= str
+ "!!!"; qDebug() << QObject
::tr("str為:") << str
; str
= " hi\r\n Qt!\n ";qDebug() << QObject
::tr("str為:") << str
;QString str1
= str
.trimmed(); qDebug() << QObject
::tr("str1為:") << str1
;QString str2
= str
.simplified(); qDebug() << QObject
::tr("str2為:") << str2
; str
= "hi,my,,Qt";QStringList list
= str
.split(",",QString
::SkipEmptyParts
);qDebug() << QObject
::tr("str拆分后為:") << list
; str
= list
.join(" "); qDebug() << QObject
::tr("list組合后為:") << str
; qDebug() << QString().isNull(); qDebug() << QString().isEmpty(); qDebug() << QString("").isNull(); qDebug() << QString("").isEmpty(); return a
.exec();
}
運行結果:
3、查詢操作
查詢操作QT控制臺程序 示例:
#include
<QCoreApplication>
#include
<QDebug>
#include
<QStringList>int main(int argc
, char *argv
[])
{QCoreApplication
a(argc
, argv
);qDebug() << endl
<< QObject
::tr("以下是在字符串中進行查詢的操作:") <<endl
;str
= "yafeilinux";qDebug() << QObject
::tr("字符串為:") << str
;qDebug() << QObject
::tr("包含右側5個字符的子字符串:") << str
.right(5);qDebug() << QObject
::tr("包含左側5個字符的子字符串:") << str
.left(5);qDebug() << QObject
::tr("包含第2個字符以后3個字符的子字符串:") << str
.mid(2, 3);qDebug() << QObject
::tr("'fei'的位置:") << str
.indexOf("fei"); qDebug() << QObject
::tr("str的第0個字符:") << str
.at(0); qDebug() << QObject
::tr("str中'i'字符的個數:") << str
.count('i'); qDebug() << QObject
::tr("str是否以”ya“開始?") << str
.startsWith("ya");qDebug() << QObject
::tr("str是否以”linux“結尾?") << str
.endsWith("linux");qDebug() << QObject
::tr("str是否包含”lin“字符串?") << str
.contains("lin");QString temp
= "hello";if(temp
> str
) qDebug() << temp
; else qDebug() << str
;qDebug() << endl
<< QObject
::tr("以下是字符串的轉換操作:") << endl
;str
= "100";qDebug() << QObject
::tr("字符串轉換為整數:") << str
.toInt(); int num
= 45;qDebug() << QObject
::tr("整數轉換為字符串:") << QString
::number(num
);str
= "FF";bool ok
;int hex
= str
.toInt(&ok
, 16);qDebug() << "ok: "<< ok
<< QObject
::tr("轉換為十六進制:") << hex
;num
= 26;qDebug() << QObject
::tr("使用十六進制將整數轉換為字符串:")<< QString
::number(num
, 16);str
= "123.456";qDebug() << QObject
::tr("字符串轉換為浮點型:") << str
.toFloat();str
= "abc";qDebug() << QObject
::tr("轉換為大寫:") << str
.toUpper();str
= "ABC";qDebug() << QObject
::tr("轉換為小寫:") <<str
.toLower();int age
= 25;QString name
= "yafei";str
= QString("name is %1, age is %2").arg(name
).arg(age
);qDebug() << QObject
::tr("更改后的str為:") << str
;str
= "%1 %2";qDebug() << str
.arg("%1f","hello"); qDebug() << str
.arg("%1f").arg("hello"); str
= QString("ni%1").arg("hi",5,'*');qDebug() << QObject
::tr("設置字段寬度為5,使用'*'填充:") << str
;qreal value
= 123.456;str
= QString("number: %1").arg(value
,0,'f',2);qDebug() << QObject
::tr("設置小數點位數為兩位:") << str
; qDebug() << QObject
::tr("將str轉換為const char* :") << qPrintable(str
);return a
.exec();
}
運行結果:
3、轉換操作
關于QString::arg()函數詳解請參見: QT學習筆記(六):QString::arg()函數用法小結.
轉換操作QT控制臺程序 示例:
#include
<QCoreApplication>
#include
<QDebug>
#include
<QStringList>int main(int argc
, char *argv
[])
{QCoreApplication
a(argc
, argv
);qDebug() << endl
<< QObject
::tr("以下是字符串的轉換操作:") << endl
;str
= "100";qDebug() << QObject
::tr("字符串轉換為整數:") << str
.toInt(); int num
= 45;qDebug() << QObject
::tr("整數轉換為字符串:") << QString
::number(num
);str
= "FF";bool ok
;int hex
= str
.toInt(&ok
, 16);qDebug() << "ok: "<< ok
<< QObject
::tr("轉換為十六進制:") << hex
;num
= 26;qDebug() << QObject
::tr("使用十六進制將整數轉換為字符串:")<< QString
::number(num
, 16);str
= "123.456";qDebug() << QObject
::tr("字符串轉換為浮點型:") << str
.toFloat();str
= "abc";qDebug() << QObject
::tr("轉換為大寫:") << str
.toUpper();str
= "ABC";qDebug() << QObject
::tr("轉換為小寫:") <<str
.toLower();int age
= 25;QString name
= "yafei";str
= QString("name is %1, age is %2").arg(name
).arg(age
);qDebug() << QObject
::tr("更改后的str為:") << str
;str
= "%1 %2";qDebug() << str
.arg("%1f","hello"); qDebug() << str
.arg("%1f").arg("hello"); str
= QString("ni%1").arg("hi",5,'*');qDebug() << QObject
::tr("設置字段寬度為5,使用'*'填充:") << str
;qreal value
= 123.456;str
= QString("number: %1").arg(value
,0,'f',2);qDebug() << QObject
::tr("設置小數點位數為兩位:") << str
; qDebug() << QObject
::tr("將str轉換為const char* :") << qPrintable(str
);return a
.exec();
}
運行結果:
總結
以上是生活随笔為你收集整理的QT学习笔记(十一):QString类的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。