删除字符串中的空格

Gan*_*alf 21 c++ qstring qt

我有一个lots\t of\nwhitespace\r\n 我简化的字符串 ,但我仍然需要摆脱字符串中的其他空格.

QString str = "  lots\t of\nwhitespace\r\n ";
str = str.simplified();
Run Code Online (Sandbox Code Playgroud)

我可以erase_all(str, " ");在提升中做到这一点,但我想留在qt.

arn*_*rnt 53

str = str.simplified();
str.replace( " ", "" );
Run Code Online (Sandbox Code Playgroud)

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


ton*_*ekk 12

试试这个:

str.replace(" ","");
Run Code Online (Sandbox Code Playgroud)


Ter*_*its 8

选项1:

简化空白区域,然后将其删除

根据文档

[ QString::simplified]返回一个字符串,该字符串从开头和结尾删除了空格,并且每个内部空格序列都替换为单个空格.

简化字符串后,可以轻松删除空格.

str.simplified().remove(' ')
Run Code Online (Sandbox Code Playgroud)

选项2:

使用a QRegExp捕获所有类型的空白区域remove.

QRegExp space("\\s");
str.remove(space);
Run Code Online (Sandbox Code Playgroud)

笔记

  • OPs字符串具有不同类型的空格(制表符,回车符,换行符),所有这些都需要删除.这是棘手的部分.

  • QString::remove在Qt 5.6中引入; 在使用QString::replace空字符串并用空字符串替换空格之前,可以实现5.6删除之前的操作"".