我想删除QString
中所有尾随的空格字符。我正在寻找做什么的Python函数str.rstrip()
与QString
。
我用谷歌搜索了一下,发现了这个:http://www.qtforum.org/article/20798/how-to-strip-trailing-whitespace-from-qstring.html
所以我现在有的东西是这样的:
while(str.endsWith( ' ' )) str.chop(1);
while(str.endsWith( '\n' )) str.chop(1);
有没有更简单的方法来做这件事?我想把所有的空格都留在开头。
发布于 2011-11-22 01:41:41
QString
有两种与修剪空格相关的方法:
返回一个从开头和end.
QString QString::simplified() const
中删除了空格的字符串返回一个字符串,其中删除了开头和结尾的空格,并将每个内部空格序列替换为一个空格。
如果你只想删除尾随的空格,你需要自己实现。下面是一个模拟trimmed
实现的实现
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 "";
}
发布于 2011-11-22 00:50:30
QString
只提供了两个与修剪相关的函数。如果它们不能满足您的需求,恐怕您需要实现自己的自定义修剪功能。
QString QString::simplified () const
返回一个字符串,其中删除了开头和结尾的空格,并将每个内部空格序列替换为一个空格。
QString str = " lots\t of\nwhitespace\r\n ";
str = str.simplified();
// str == "lots of whitespace";
QString QString::trimmed () const
返回一个从开头和结尾去掉了空格的字符串。
QString str = " lots\t of\nwhitespace\r\n ";
str = str.trimmed();
// str == "lots\t of\nwhitespace"
发布于 2011-11-22 00:49:58
如果开头没有或不需要任何空格,可以使用QString QString::trimmed () const
。
这会忽略任何内部空格,由Andrejs Cainikovs提供的替代解决方案更正了这一点。
https://stackoverflow.com/questions/8215303
复制相似问题