QString str2 = "Hello";
这一行调用的QString类的构造函数是:
QString::QString(const char *str)
这个传递进来的const char *str指针以会被函数QString::fromAscii()转化为Unicode编码。默认情况下fromAscii()函数会反字符当作
Latin-1编码处理。这就是为什么我们使用中文的时候会出现乱码。一种解决方法是使用 QTextCodec::setCodecForCString()函数改变
QString:fromAscii()函数的默认行为。另一种方法是在编译的时候定义宏QT_CAST_FROM_ASCII来屏蔽上面的这个构造函数。如果程序的所有字符都必须经过 QObject::tr()函数处理,那么使用这个宏屏蔽掉这个构造函数会很方便。
QString::append()函数和+=操作符有相同的作用,就是将一个字符串追加到另一个字符串的末尾。
QString::sprintf()函数与C++中的sprintf()函数一样,可以将多个字符串及其他类型的数据以一定的格式组织顾一个字符串:
QString::sprintf("%s was born in %d","John",1988);
QString::arg()函数提供第三种字符串组合方式。这个函数是类型安全并且完全支持Unicode的。也是最常使用的:QString str = QString("%1 was born %2.").arg("John").arg("1982");
QString::insert()函数在源字符串的指定位置插入另一个字符串。
QString::prepend()函数在源字符串的开头位置插入另一个字符串。
QString;:replace()函数用指定的字符串替换源字符串中的某些字符。
QString::trimmed()函数移除字符串两端的空白字符。
QString::simplifed()除了移除字符串两端的空白字符外,还会使用单个空格字符代替字符串中出现的空白字符。
二,查询字符串数据:
QString::startsWidth("xxx",Qt::CaseSensitive)判断一个字符串是否以某个字符串开头。第一个参数是指定的字符串。第二个参数指定是否大小写敏感(默认敏感)。
QString::endsWidth()判断一个字符串否以某个字符是否以某个字符串结尾。
QString::contains()判断一个指定的字符串是否出现过。
三,比较字符串:
operator<(const QString&)、operator<=(const QString&)、operator==(const QString&)、operator>=(const QString&)、operator>(cons QString&)。
QString::localeAwareCompare(const QString&,const QString&)静态函数。比较两个字符串,小于返回负数;等于返回零;大于返回正数。该函数比较是基于本地字符集的,通常平台相关。
QString::compare(const QString&,const QString&,Qt::CaseSensitivity)静态函数可以指定是否进行大小写敏感比较。大小写敏感比较是完全基于字符的Unicode编码值的。
//字符串替换
QString str = "colour behaviour flavour neighbour";
str.replace(QString("ou"), QString("o"));
// str == "color behavior flavor neighbor"
2010-10-11 10:56 回复
124.205.34.*
3楼
//QString 斜杠查找替换
QString str ="colour\behaviour\flavour\"
storedb.StoreProfile.ReceiptHeader.replace(QString("\\"), QString("\n"));
//str ="colour\nbehaviour\flavour\n"
2010-10-11 10:59 回复
124.205.34.*
4楼
QString添加n个相同字符
QString str;
str.fill( 'g', 5 ); // string == "ggggg"
2010-10-11 13:28 回复
124.205.34.*
5楼
QString 截取字串 字串处理
QString str="wo,shi,tab";
QStringList strlist = str.split(",");
str1 = strlist.at(0).toLocal8Bit().data();
str2 = strlist.at(1).toLocal8Bit().data();
str3= strlist.at(2).toLocal8Bit().data();
//str1="wo";
//st2='shi";
//str3 = "tab";
2010-10-11 16:19 回复
124.205.34.*
6楼
//删除字符
QString str="wo,shi,tab";
str=str.remove(QChar(','),Qt::CaseInsensitive);
//woshitab
2010-10-15 15:32 回复
7楼这个也是中文的
http://www.kuqin.com/qtdocument/qstring.html#QString
2010-10-15 15:50 回复
8楼
//==============mid==================================
QString str="woshi dddd baidu,tab";
str=str.mid(11,5);//mid(x,y); x=开始位置 y=截取位数
//str="baidu"
2010-10-25 23:19 回复
9楼
QString QString::leftJustify ( uint width, QChar fill = ' ', bool truncate = FALSE ) const
返回一个长度为width的,包含这个字符串,并且用fill填补的字符串。
如果truncate为假并且字符串的长度超过width,那么返回的字符串是这个字符串的复制。
如果truncate为真并且字符串的长度超过width,那么这个字符串的复制中超过width长度的任何字符都被移除并且这个复制被返回。
QString s( "apple" );
QString t = s.leftJustify( 8, '.' ); // t == "apple..."
2010-10-28 14:45 回复
124.205.34.*
10楼
QDateTime dateTime2 = QDateTime::fromString("2010-10-15 16:56:06","yyyy-MM-dd hh:mm:ss");
2010-10-28 15:00 回复
124.205.34.*
12楼
//QString 转 QDateTime qt时间比较
#include
#include
#include "mainwindow.h"
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QString time="2010-10-15 16:56:40";
QDateTime dateTime2 = QDateTime::fromString("2010-10-15 16:53:06","yyyy-MM-dd hh:mm:ss");
QDateTime dateTime1 = QDateTime::fromString(time,"yyyy-MM-dd hh:mm:ss");
qDebug()<
w.show();
return a.exec();
}
2010-10-28 15:21 回复
124.205.34.*
13楼
//判断一个字符串是否出现过
QString str = "Peter Pan";
str.contains("peter", Qt::CaseInsensitive); // returns true
2010-11-4 14:52 回复
124.205.34.*
15楼
// QString 转char
QString str="hello";
QByteArray ba = str.toLatin1();
char *ch = ba.data();
str=QString(QLatin1String(ch));//char 转QString
2011-4-19 13:29 回复
16楼截取字符串
QString str="@str@ok";
QString ok=str.section('@', 2,2);