删除字符串中的空白
Removing whitespaces inside a string
我有一个字符串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());
我没有测量过哪种方法更快。我猜这个正则表达式会更差。
相关文章:
- 由cin中的字符串中未捕获空白引起的分割错误
- 我如何使它,无论用户用空白字符串按 Enter 多少次,它总是打印"开始"字符串?
- 对象数组打印空白字符串
- C++忽略使用字符串流进行读取的文本文件中的空白
- 字符串:: substr()返回一个空白字符串
- C 将字符串按空白空间将字符串拆分,除非将其封闭在引号中并存储在向量中
- std :: getline从iStream中直至字符串[]多次空白
- 将utf8编码的字符串转换为本地8位编码的字符串,并将无法确定的字符替换为空白
- 检查字符中的空白和字符串中的数字
- 如何使用c++将字符串中出现的空白替换为下划线
- 如何检查字符串是否包含空格/制表符/换行符(任何空白内容)?
- 如何从字符串流c++中提取空白
- 拆分字符串以仅获取数字数组(转义空白和空格)
- 如何读取文件内容并将其保存到字符串类型变量?为什么有空白空间
- 将空白字符替换为 %20 的字符串,忽略所有尾随空格
- 在空白字符上拆分 UTF-8 编码字符串,而无需了解 UTF-8 编码
- 在文件中搜索字符串(逐行),忽略单词之间空白的大小
- 在c++ 11基于范围的for循环中,通过迭代器删除字符串中的空白
- 删除字符串中的空白
- 不知道为什么我得到空白字符串C++