qstring \x00\x00 转成 \n
时间: 2023-11-05 13:05:37 浏览: 33
将字符串中的 "\x00\x00" 替换为 "\n" 可以使用 QString 的 replace() 函数,代码如下:
```
QString str = "hello\x00\x00world";
str.replace("\x00\x00", "\n");
```
执行后,str 的值为 "hello\nworld"。
相关问题
在qt里有一段文本"X0 Y0; 中文测试哈哈\r\nX0 X \n\r\n\n\r\n",使用split(QRegExp("[\r\n]+"), QString::SkipEmptyParts);会将后面多个空行分割成一个空行
这是因为 `QRegExp("[\r\n]+")` 表示匹配一个或多个回车换行符。所以当遇到多个连续的回车换行符时,会被当做一个分隔符处理,从而导致多个空行被合并成一个空行。
如果你想要保留所有空行,可以使用 `split(QRegExp("\n|\r\n"), QString::SkipEmptyParts)` 来进行分割。这样就会同时匹配换行符 `\n` 和回车换行符 `\r\n`,从而将每个空行都分割开来。
在qt里有一段文本"X0 Y0; 中文测试哈哈\r\nX0 X \n\r\n\n\r\n",怎样以“\r\n"或“\n”分割,并保留空行
你可以使用QString的split函数来将文本分割成一行一行的字符串。然后再去掉每行字符串开头和结尾的空白字符(包括空格、制表符、换行符等),这样就可以保留空行了。以下是一个示例代码:
```cpp
QString text = "X0 Y0; 中文测试哈哈\r\nX0 X \n\r\n\n\r\n";
QStringList lines = text.split(QRegExp("[\r\n]+"), QString::SkipEmptyParts);
for (const QString& line : lines)
{
QString trimmedLine = line.trimmed();
// 处理每行字符串
}
```
其中,`split(QRegExp("[\r\n]+"), QString::SkipEmptyParts)`表示使用正则表达式`[\r\n]+`来分割文本,这个正则表达式表示一个或多个回车符或换行符。`QString::SkipEmptyParts`表示跳过空字符串。`trimmed()`函数用于去掉每行字符串开头和结尾的空白字符。