删除字符串中的空白

Removing whitespaces inside a string

本文关键字:空白 字符串 删除      更新时间:2023-10-16

我有一个字符串lotst ofnwhitespacern,我已经简化了,但我仍然需要摆脱字符串中的其他空格。

QString str = "  lotst ofnwhitespacern ";
str = str.simplified();

我可以在boost中执行此erase_all(str, " ");,但我想留在qt中。

str = str.simplified();
str.replace( " ", "" );

第一个将所有空白字符更改为单个ASCII 32实例,第二个将其删除。

试试这个:

str.replace(" ","");

选项1:

简化空白,然后删除

Per the docs

[QString::simplified]返回一个字符串,该字符串从开始和结束处删除空白,并将每个内部空白序列替换为单个空格。

一旦字符串被简化,就可以很容易地删除空白。

str.simplified().remove(' ')

选项2 :

使用QRegExp捕获remove中的所有类型的空白。

QRegExp space("\s");
str.remove(space);
指出

  • OPs字符串有不同类型的空白(制表符、回车符、换行符),所有这些都需要删除。

  • QString::remove在Qt 5.6中引入;在5.6之前,可以使用QString::replace并将空白替换为空字符串""

您可以使用regex省略对simplified()的调用:

str.replace(QRegularExpression("\s+"), QString());

我没有测量过哪种方法更快。我猜这个正则表达式会更差。