QString的常用操作

QString 是Qt框架中用于处理字符串的类。它提供了丰富的字符串操作功能,可以用于处理文本、格式化输出、拼接字符串等。以下是一些常见的 QString 操作和用法示例:

创建 QString 对象:

QString str1 = "Hello, ";
QString str2("world!");

字符串连接和拼接:

QString result = str1 + str2; // 将两个字符串连接起来
result += " Welcome!";       // 追加字符串

获取字符串长度:

int length = result.length(); // 获取字符串长度

字符串比较:

if (str1 == str2) {
    // 字符串相等
} else {
    // 字符串不相等
}

子串提取:

QString subStr = result.mid(0, 5); // 提取从索引0开始的前5个字符

字符串查找:

int index = result.indexOf("world"); // 查找子串的位置,如果找不到返回-1

替换字符串:

result.replace("world", "universe"); // 将所有匹配的子串替换为新的字符串

大小写转换:

QString upperStr = result.toUpper(); // 将字符串转换为大写
QString lowerStr = result.toLower(); // 将字符串转换为小写

格式化字符串:

int number = 42;
QString formattedStr = QString("The answer is %1").arg(number); // 使用arg()函数格式化字符串

判断字符串是否为空:

if (result.isEmpty()) {
    // 字符串为空
} else {
    // 字符串不为空
}

转换为标准C++字符串:

std::string stdStr = result.toStdString(); // 转换为std::string

将标准C++字符串转换为QString:

QString qtStr = QString::fromStdString(stdStr); // 从std::string转换为QString

去除字符串两端的空白字符:

QString trimmedStr = result.trimmed(); // 去除两端的空格、制表符等空白字符

分割字符串:

`QStringList list = result.split(","); // 使用指定字符进行分割,结果存储在QStringLis`t中

获取字符或子串:

QChar firstChar = result.at(0); // 获取字符串的第一个字符
QString subStr = result.left(3); // 获取字符串的前3个字符

插入字符或子串:

result.insert(5, "123"); // 在索引5处插入字符串

移除字符或子串:

result.remove(0, 5); // 从索引0开始移除5个字符

字符串比较(不区分大小写):

if (str1.compare(str2, Qt::CaseInsensitive) == 0) {
    // 字符串相等(不区分大小写)
}

格式化浮点数:

double value = 3.14159265359;
QString formattedFloat = QString::number(value, 'f', 2); // 格式化浮点数保留2位小数

使用正则表达式进行匹配和替换:

QRegExp regex("world");

result.replace(regex, “universe”); // 使用正则表达式替换匹配的子串
字符串转换为整数或浮点数:

QString numStr = "42";
int intValue = numStr.toInt();        // 转换为整数
double doubleValue = numStr.toDouble();// 转换为浮点数

字符串是否以特定前缀或后缀开始/结束:

bool startsWith = result.startsWith("Hello"); // 检查字符串是否以指定前缀开始
bool endsWith = result.endsWith("Welcome!");   // 检查字符串是否以指定后缀结束

获取字符的 Unicode 编码点:

QChar character = 'A';
int unicode = character.unicode(); // 获取字符 'A' 的 Unicode 编码

根据格式化规则进行字符串比较:

QString str1 = "apple";
QString str2 = "Banana";
int compareResult = QString::localeAwareCompare(str1, str2); // 根据当前区域设置进行字符串比较

多次替换多个子串:

QMap<QString, QString> replacements;
replacements["apple"] = "fruit";
replacements["banana"] = "fruit";
result.replace(QRegExp("apple|banana"), replacements); // 一次替换多个子串

字符串格式化和插值:

int apples = 5;
QString message = QString("I have %1 apples").arg(apples); // 使用arg()插值

使用正则表达式进行字符串匹配和捕获:

QRegExp regex("(\\d+)-(\\d+)-(\\d+)");
QString text = "Date: 2023-10-08";
if (regex.indexIn(text) != -1) {
    QString year = regex.cap(1); // 捕获第一个括号中的内容
    QString month = regex.cap(2); // 捕获第二个括号中的内容
    QString day = regex.cap(3);   // 捕获第三个括号中的内容
}

字符串转换为 UTF-8 编码的字节数组:

QByteArray byteArray = result.toUtf8();

在字符串中查找最后一次出现的子串:

int lastIndex = result.lastIndexOf("o"); // 查找最后一次出现字符 "o" 的位置

将字符串拆分为多行文本:

QString multilineText = "Line 1\nLine 2\nLine 3";
QStringList lines = multilineText.split("\n"); // 将字符串按行拆分为 QStringList

你可能感兴趣的:(qt)