首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从QString中删除尾随空格?

如何从QString中删除尾随空格?
EN

Stack Overflow用户
提问于 2011-11-22 00:46:03
回答 10查看 59.2K关注 0票数 39

我想删除QString中所有尾随的空格字符。我正在寻找做什么的Python函数str.rstrip()QString

我用谷歌搜索了一下,发现了这个:http://www.qtforum.org/article/20798/how-to-strip-trailing-whitespace-from-qstring.html

所以我现在有的东西是这样的:

代码语言:javascript
运行
复制
while(str.endsWith( ' ' )) str.chop(1);
while(str.endsWith( '\n' )) str.chop(1);

有没有更简单的方法来做这件事?我想把所有的空格都留在开头。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-11-22 01:41:41

QString有两种与修剪空格相关的方法:

返回一个从开头和end.

返回一个字符串,其中删除了开头和结尾的空格,并将每个内部空格序列替换为一个空格。

如果你只想删除尾随的空格,你需要自己实现。下面是一个模拟trimmed实现的实现

代码语言:javascript
运行
复制
QString rstrip(const QString& str) {
  int n = str.size() - 1;
  for (; n >= 0; --n) {
    if (!str.at(n).isSpace()) {
      return str.left(n + 1);
    }
  }
  return "";
}
票数 60
EN

Stack Overflow用户

发布于 2011-11-22 00:50:30

QString只提供了两个与修剪相关的函数。如果它们不能满足您的需求,恐怕您需要实现自己的自定义修剪功能。

QString QString::simplified () const

返回一个字符串,其中删除了开头和结尾的空格,并将每个内部空格序列替换为一个空格。

代码语言:javascript
运行
复制
QString str = "  lots\t of\nwhitespace\r\n ";
str = str.simplified();
// str == "lots of whitespace";

QString QString::trimmed () const

返回一个从开头和结尾去掉了空格的字符串。

代码语言:javascript
运行
复制
QString str = "  lots\t of\nwhitespace\r\n ";
str = str.trimmed();
// str == "lots\t of\nwhitespace"
票数 28
EN

Stack Overflow用户

发布于 2011-11-22 00:49:58

如果开头没有或不需要任何空格,可以使用QString QString::trimmed () const

这会忽略任何内部空格,由Andrejs Cainikovs提供的替代解决方案更正了这一点。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8215303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档