第2章:QString
1,QString与char int float之间的相互转换以及自身的一些操作;QStringList的使用
2,源码:
QString str1 = "jone";
QString str2 = "1982";
QString str = "";
//字符串组合
str = QString("%1 was born in %2.").arg(str1).arg(str2);
ui->textEdit->insertPlainText(str);
ui->textEdit->insertPlainText("\r\n\n");
//在原字符串的特定位置插入另一个字符串
str.insert(4, " not");
ui->textEdit->insertPlainText(str);
ui->textEdit->insertPlainText("\r\n\n");
//在开头插入
str.prepend("Mr ");
ui->textEdit->insertPlainText(str);
ui->textEdit->insertPlainText("\r\n\n");
//在末尾加入
str.append(" Year");
ui->textEdit->insertPlainText(str);
ui->textEdit->insertPlainText("\r\n\n");
//替换指定字符串
str.replace(0,2, "Mrt");
ui->textEdit->insertPlainText(str);
ui->textEdit->insertPlainText("\r\n\n");
//判断是否以某字符串开头
if (str.startsWith("Mrt"))
{
ui->textEdit->insertPlainText("Yes");
ui->textEdit->insertPlainText("\r\n\n");
}
//判断是否以某字符结尾
if (str.endsWith("Year"))
{
ui->textEdit->insertPlainText("Yes");
ui->textEdit->insertPlainText("\r\n\n");
}
//判断是否包含
if (str.contains("not"))
{
ui->textEdit->insertPlainText("Yes");
ui->textEdit->insertPlainText("\r\n\n");
}
//把数字按照16进制转换成字符串 toUpper()大写
{
unsigned short num = 100;
str = QString("%1").arg(num, 4, 16, QLatin1Char('0')).toUpper();
ui->textEdit->insertPlainText("0x"+str);
ui->textEdit->insertPlainText("\r\n\n");
}
//字符串转换成数字
{
//toDouble(),toFlat(),toLong(),toLongLong()
QString str = "123";
int num = str.toInt();
ui->textEdit->insertPlainText(QString::number(num, 10));
ui->textEdit->insertPlainText("\r\n\n");
//toAscii(): 转换成ASCII编码的8位字符串
//toLatin1():返回一个Latin-1编码的8位字符串
//toUtf8(): 返回一个UTF-8编码的8位字符串
//toLoacl8Bit():返回一个系统本地编码的8位字符串
}
//QString 转换成char
{
char* ptr;
char tempName[10];
QByteArray ba;
QString str = "hello";
ba = str.toLatin1();
ptr = ba.data();
memcpy(tempName, ptr, 10);
}
//char转换成QString
{
char a='M';
QString str;
str=QString(a);
ui->textEdit->insertPlainText(str);
ui->textEdit->insertPlainText("\r\n\n");
}
//中文转换成char
{
char *temp_Ptr;
char temp_buf[20];
QString str = tr("好好学习,天天向上。");
QByteArray tempArray = str.toLocal8Bit();
temp_Ptr = tempArray.data();
memcpy(temp_buf, temp_Ptr, tempArray.length());
}
//char转换成中文
{
char tempData[20];
QString str;
str = QString::fromLocal8Bit(tempData, 20);
}
//浮点数转换成字符串
{
float temp_data = 23.65;
ui->textEdit->insertPlainText((QString("%1").arg(temp_data, 0, 'f',1)));
ui->textEdit->insertPlainText("\r\n\n");
}
//判断字符串是否为空是否没指向
QString().isNull();
QString().isEmpty();
QString("").isNull();
QString("").isEmpty();
//QStringList的使用
{
QStringList strList;
strList << "Arial" << "Helvetica" << "Times" << "Courier";
for(int i=0; i< strList.size(); i++)
{
ui->textEdit->insertPlainText(strList.at(i)+ " ");
}
}
3,效果: