#include <QCoreApplication>
#include <QDebug>//#include <QtDebug>
#include <QString>
#include <QByteArray>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString str("abc图形界面");
QString str2 = "123";
QString str3 = " hello \t \n world ";
/*操作字符串*/
//附加字符串
str.append(str2);//abc图形界面123
str.append(" hel");//abc图形界面123 hel
str += "lo";//abc图形界面123 hello
//格式化字符串
str.sprintf("%s","hello Qt");//hello Qt
str = QString("%1 %2").arg("ver:Qt").arg(5.8);//ver:Qt 5.8
//插入、替换
str.insert(6,"~");//ver:Qt~5.8
str.prepend("aa ");//aa ver:Qt~5.8
str.replace("ver","-");//aa -:Qt~5.8
//去除空格、制表符、回车符、换行符
str = str3.trimmed();//不改变str3,"hello \t \n world"
str2 = str3.simplified();//不改变str3,"hello world"
/*查询字符串,判断*/
bool flag = false;
QString str4 = "C++ GUI";
QString str5 = "She was born in Beijing.";
flag = str4.startsWith("C++",Qt::CaseSensitive);//true
flag = str4.endsWith("gui");//false 默认为区分大小写
flag = str5.contains("was");//true
flag = (str4 == str5);//false
flag = QString().isNull();//true
flag = QString().isEmpty();//true
flag = QString("").isNull();//false
flag = QString("").isEmpty();//true
/*字符串转换*/
//字符串转数字
//toInt() toFloat() toDouble() toLong() toLongLong()
QString str6 = "255";
QString str7 = "3.14159";
bool ok = false;
int dec = str6.toInt(&ok);//255
int hex = str6.toInt(&ok,16);//597
float f = str7.toFloat(&ok);//3.14159
double d = str7.toDouble(&ok);//3.14159
//字符编码集转换
//toUtf8() 返回一个UTF-8编码的8位字符串(UTF-8是ASCII码的超集,支持Unicode字符集)
//toLatin1() 返回一个Latin-1编码(ISO8859-1)的8位字符串
//toLocal8Bit() 返回一个系统本地编码的8位字符串
QString str8("中文abc123");
QByteArray ba = str8.toUtf8();
qDebug() << ba.data();//中文abc123
ba.append("编码def");
qDebug() << ba.data();//中文abc123编码def
return a.exec();
}